当尝试将Rails应用程序部署到Railway时,我收到以下错误:
ActiveRecord::PendingMigrationError
Migrations are pending. To resolve this issue, run:
bin/rails db:migrate RAILS_ENV=development
You have 1 pending migration:
20221102234102_create_contacts.rb
我可以点击消息下方的一个按钮,让应用程序在线,上面写着";运行挂起的迁移";。我想找到一种方法,在每次部署时自动运行迁移。
我已经尝试了Getting中列出的所有内容:;正在等待迁移;run';bin/rake-db:migrate RAILS_ENV=development';以解决此问题"在克隆和迁移项目之后
所以我运行了:
rm -f db/*.sqlite3
rake db:create
RAILS_ENV=development bundle exec rake db:migrate
rails s -e development
没有成功。
";20221102234102_创建_;文件如下:
class CreateContacts < ActiveRecord::Migration[7.0]
def change
create_table :contacts do |t|
t.string :name
t.string :email
t.text :comments
t.timestamps
end
end
end
我对网络开发完全陌生,一直在关注免费的训练营视频,但他们正在使用Heroku,但没有成功,由于Heroku将不再免费,我想我应该试试Railway。
Railway将使用Procfile
来启动您的服务,因此确保迁移运行的一个简单方法就是使用它。
在应用程序的根文件夹中,添加一个名为Procfile
(无扩展名(的文件
以下是我的一个应用程序的示例:
web: /bin/bash -l -c "rake db:migrate && bundle exec puma -C config/puma.rb"
这首先运行rake db:migrate
,然后使用我在config/puma.rb
中定义的配置启动puma
服务器
此命令在成功生成后运行一次。