Как правильно запускать strapi с postgresql?
Я устанавливаю strapi командой:
npx create-strapi-app myprj
Далее выбираю:
custom > TS > postgres > dbname > 127.0.0.1 > 5432 > denis > mypassword > N
Т.е. указываю
имя БД dbname, хост 127.0.0.1, порт 5432, имя юзера denis, пароль mypassword, отказываюсь от ssl
Далее, запускаю postgresql:
sudo -u postgres psql
Затем:
CREATE ROLE denis WITH LOGIN PASSWORD 'mypassword' CREATEDB;
Потом:
GRANT ALL PRIVILEGES ON DATABASE dbname TO denis;
На всё получаю ответы, что все ок, но после того, как пытаюсь запустить strapi получаю:
debug: ⛔️ Server wasn't able to start properly.
[2023-01-06 15:18:20.275] error: create table "strapi_migrations" ("id" serial primary key, "name" varchar(255), "time" timestamp) - нет доступа к схеме public
error: create table "strapi_migrations" ("id" serial primary key, "name" varchar(255), "time" timestamp) - нет доступа к схеме public
Я прекрасно понимаю, что скорее всего, где то проблемы с правами, вероятней всего, но я только начал изучать strapi и postgresql и пока полный ноль.
Я долго искал ответ в поисковиках, но не смог найти решения свой проблемы.
Ответы (1 шт):
Нашел решение.
Не знаю, на сколько это правильно, но если указать в файле папка нашего проекта/config/database.ts (в моём случае .ts) в строке
user: env('DATABASE_USERNAME', 'denis'),
Заменить имя на postgres (дефолтный суперпользовтель в postgresql), а строкой ниже поставить пароль, например qwerty, затем
sudo -u postgres psql
ALTER USER postgres PASSWORD 'qwerty';
То всё работает. Сомневаюсь, что это правильный подход. Куда разумней дать все нужные права определенному пользователю и использовать его, но я пока не знаю как это сделать.
Тем не менее, это решение заставило запускаться мой strapi с postgresql