gpt4 book ai didi

mysql - 无法在 Rails 上运行数据库迁移

转载 作者:搜寻专家 更新时间:2023-10-30 23:07:51 25 4
gpt4 key购买 nike

我在通过 rake db:migrate 在 rails 中迁移数据库时一直遇到问题。

我的迁移目前看起来像这样:

class CreateArticles < ActiveRecord::Migration
def change
create_table :articles do |t|
t.string :title
t.text :subtitle
t.string :slug
t.text :body
t.integer :publish, limit: 1, default: 0
t.timestamps
end
end
end

但是,如果我从中删除一列,甚至添加或修改一列,rake db:migrate 命令什么都不做。我可以迁移它的唯一方法有时是运行类似的东西:

rake db:migrate VERSION=20080906120000

但即使那样也是喜怒无常的,所以大多数时候我需要使用重置数据库

db:drop
db:create

然后正常运行迁移。基本上 db:migrate 只会在删除和创建数据库后的第一次工作。

在运行迁移之前,我也尝试过回滚。

这远非理想,所以我很感激任何帮助。

(我知道有类似的问题,但他们所有的问题都在数据库重置后解决了)

最佳答案

您需要运行迁移down,然后再次运行up,这是通过redo 任务完成的。试试这个:

rake db:migrate:redo VERSION=20080906120000

编辑:如果您有要保留在此表中的数据,最好进行新的迁移以删除该列或您想要执行的任何操作,因为上面的操作将删除并重新创建表,删除数据过程。

关于mysql - 无法在 Rails 上运行数据库迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24143404/

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