Это установка для разработки или стандартная установка?
Если вы пытаетесь запустить в продакшн-среде, то в файле app.yml следует установить версию stable. В этом случае клонировать Discourse, как вы указали, не нужно.
После выполнения sudo -s, а затем d/rake db:drop db:create db:migrate, я получил следующую ошибку:
PG::InsufficientPrivilege: ERROR: must be owner of database discourse_development
Couldn't drop database 'discourse_development'
rake aborted!
ActiveRecord::StatementInvalid: PG::InsufficientPrivilege: ERROR: must be owner of database discourse_development
Caused by:
PG::InsufficientPrivilege: ERROR: must be owner of database discourse_development
Tasks: TOP => db:drop:_unsafe
(See full trace by running task with --trace)
Хм. Может, просто удалить и заново создать эти базы данных самостоятельно, а затем выполнить миграцию с помощью rake-задачи. Или предоставить пользователю Discourse права на создание и удаление (думаю, это проще).
К сожалению, я не очень хорошо знаком с процессом предоставления пользователю Discourse прав на создание и удаление. Однако, если речь о первом варианте, вы имеете в виду, что мне нужно просто удалить все эти базы данных, а затем выполнить d/rake db:create db:migrate? Так ли это?
Спасибо за помощь до сих пор! Я хочу немного отступить перед тем, как углубляться в устранение неполадок psql. Моя основная цель — просто запустить окружение разработки Discourse в Docker (версия stable) на Ubuntu. На Mac всё работает отлично и как ожидается. Разве я не должен иметь возможность сделать это без ошибок таблиц и миграций? При попытке чистой установки я получаю ошибку с закладками, после её устранения возникает NoMethodError, а теперь ещё и ошибка InsufficientPrivilege.
Сначала я подумал, что проблема в том, что я переключился с ветки test-passed на stable, но даже на чистой пустой установке Ubuntu ошибка NoMethodError всё равно появляется. Это происходит без каких-либо предыдущих баз данных — я выполнил только шаги #1 и #2 из этого руководства:
Удалось ли вам установить стабильную версию на Ubuntu без каких-либо проблем?
Спасибо за ваш ответ! К сожалению, я продолжаю сталкиваться с той же проблемой:
d/bundle exec rake db:drop db:create db:migrate
PG::InsufficientPrivilege: ERROR: must be owner of database discourse_development
Couldn't drop database 'discourse_development'
rake aborted!
ActiveRecord::StatementInvalid: PG::InsufficientPrivilege: ERROR: must be owner of database discourse_development
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Caused by:
PG::InsufficientPrivilege: ERROR: must be owner of database discourse_development
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => db:drop:_unsafe
(See full trace by running task with --trace)
Я пытался выполнить это на чистой установке (начал заново, без существующих баз данных или информации), следуя руководству для начинающих, но получил тот же результат.
Вот ошибка, которую я всё ещё получаю при запуске d/rails s:
Тогда вам придется удалить базу данных другим способом. Вы можете поискать в Google информацию о PostgreSQL (я так делаю, когда мне нужно это сделать) или подождать, пока кто-то вспомнит и напишет здесь. Другой вариант — убедиться, что пользователь discourse имеет права на удаление и создание баз данных.