我有一个没有应用到我的schema.rb上的rails迁移。迁移应该创建一个表:
class CreateUserGraphs < ActiveRecord::Migration
def change
create_table :user_graphs do |t|
t.string :name
t.string :content
t.integer :user_id
t.string :type_id
t.integer :upload_id
t.timestamps
end
add_index :user_graphs, [:user_id, :created_at]
end
end
我做了db:重置。然后我尝试了rake :migrate:up VERSION=123123123(这是迁移#)。我在我的"dev“环境中。
为什么迁移不会影响schema.rb?
发布于 2018-06-08 15:53:12
我也有同样的问题。我在开发环境中工作(与乘客和阿帕奇)。生产环境和开发环境使用相同的数据库。
当我运行rake db:migrate
时,数据库被更改了,但是模式没有更新。然后我运行rake db:migrate RAILS_ENV=development
,现在模式被更新了。
似乎rails/rake对我的环境感到困惑。Passenger为这个网站设置了一个开发环境,但rake about
说的是“环境生产”。
发布于 2013-12-09 17:03:40
迁移的“版本”是通过时间戳完成的。Rails通过比较上一次运行的迁移的时间戳并查看是否有更新的迁移来检查它需要运行哪些迁移。
如果新迁移的版本是123123123
,它将不会运行,因为该数字不大于当前时间戳(例如,20131209170300
)。
发布于 2018-02-08 07:35:47
我也有同样的问题...事实证明,这是因为我编辑了迁移文件的名称,使其看起来更整洁。确保您没有像我一样删除迁移文件标题中的时间戳。
我删除了迁移文件、模型、控制器和相关的测试,并重新生成了修复问题的控制器和模型。
https://stackoverflow.com/questions/20464924
复制相似问题