gpt4 book ai didi

ruby-on-rails - 在生产环境中运行 Rails 迁移

转载 作者:数据小太阳 更新时间:2023-10-29 09:01:13 24 4
gpt4 key购买 nike

我已经使用 passenger 和 nginx 在 VPS 上部署了一个 Rails 应用程序。现在我添加了如下迁移:

def change
add_column :order_products, :order_id, :integer
add_index :order_products, :order_id


Order.find_each do |order|
OrderProduct.where(order_number: order.order_number).find_each do |op|
op.update_attributes!(order_id: order.id)
end
end
end

我在 VPS 上执行了 rake db:migrate 命令,但这并没有向 OrderProduct 表添加任何列。

db/schema.rb 包含以下内容:

create_table "order_products", force: :cascade do |t|
t.string "order_number"
t.string "item_code"
t.integer "quantity"
t.string "status"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "order_id"
end

add_index "order_products", ["order_id"], name: "index_order_products_on_order_id", using: :btree

包含 order_id 列的地方。此外,在 schema_migrations 表中,我没有看到添加的最新迁移版本。

我是否需要做任何其他事情才能让它在生产环境中运行?

感谢您的帮助。

最佳答案

你需要告诉rake你想运行production中的任务环境,因为默认情况下它会针对 development 运行迁移数据库:

在旧版本的 Ruby on Rails 上 (< 5)

$ RAILS_ENV=production rake db:migrate

在较新版本的 Ruby on Rails 上 ( >= 5 )

$ RAILS_ENV=production rails db:migrate

关于ruby-on-rails - 在生产环境中运行 Rails 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35242449/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com