我正在尝试使用 discourse_docker 安装新的 Discourse 实例,但迁移失败了:
== 20180916195601 MigrateS3BackupSiteSettings: migrating ======================
-- execute("UPDATE site_settings\nSET name = 'backup_location',\n data_type = 7,\n value = 's3'\nWHERE name = 'enable_s3_backups' AND value = 't';\n")
-> 0.0005s
-- execute("DELETE\nFROM site_settings\nWHERE name = 'enable_s3_backups';\n")
-> 0.0004s
== 20180916195601 MigrateS3BackupSiteSettings: migrated (0.0018s) =============
== 20180917024729 RemoveSuperfluousColumns: migrating =========================
WARNING
-------------------------------------------------------------------------------------
在迁移过程中尝试删除或重命名列
使用的 SQL 为:'ALTER TABLE user_profiles DROP COLUMN IF EXISTS card_image_badge_id'
请使用 `rails g post_migration` 生成一个部署后迁移,以删除或重命名列。
注意,为尽量减少干扰,请在您的 ActiveRecord 模型上使用 self.ignored_columns = ["column name"],大约 6 个月后可以移除该设置。
此保护机制旨在防止删除当前正在被运行中的应用使用的列。
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' 失败,返回状态码为 #<Process::Status: pid 12775 exit 1>
失败位置:/pups/lib/pups/exec_command.rb:112:in `spawn'
执行失败,参数如下:{"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
59a086818934d9ab5ac6095987a41a5d4f317615dab7d86710afc36b0b40cf5e
** 引导失败 ** 请向上滚动查看更早的错误信息,可能不止一条。
./discourse-doctor 可能有助于诊断问题。
当将版本强制设置为 v2.5.0.beta2 而不是 test_passed 时,它可以正常工作。我注意到最近有关于 SafeMigration 的提交记录,这似乎与此相关。