问题
使用PostgreSQL安装wikijs过程中,启动项目运行node server时,会报错如下:
error: Database Initialization Error: create table "migrations" ("id" serial primary key, "name" varchar(255), "batch" integer, "migration_time" timestamptz) - permission denied for schema public
出现该问题,问题基本出在PostgreSQL版本问题上。
PostgreSQL v15或更高版本修改了public schema的默认权限。之前的版本允许everyone在schema public中创建对象,现在只有数据库所有者才可以这样做,除非对用户进行授权。
解决办法
grant all privileges on database my_database to my_database_user; grant all privileges on all tables in schema public to my_database_user; grant all privileges on all sequences in schema public to my_database_user; grant all privileges on all functions in schema public to my_database_user; GRANT CREATE ON SCHEMA public TO my_database_user;
其中的my_database是创建的数据库名称, my_database_user为需要授权的数据库用户名。