首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Rails迁移不会更改schema.rb

Rails迁移不会更改schema.rb
EN

Stack Overflow用户
提问于 2013-12-09 15:00:16
回答 4查看 35.1K关注 0票数 28

我有一个没有应用到我的schema.rb上的rails迁移。迁移应该创建一个表:

代码语言:javascript
复制
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?

EN

回答 4

Stack Overflow用户

发布于 2018-06-08 15:53:12

我也有同样的问题。我在开发环境中工作(与乘客和阿帕奇)。生产环境和开发环境使用相同的数据库。

当我运行rake db:migrate时,数据库被更改了,但是模式没有更新。然后我运行rake db:migrate RAILS_ENV=development,现在模式被更新了。

似乎rails/rake对我的环境感到困惑。Passenger为这个网站设置了一个开发环境,但rake about说的是“环境生产”。

票数 3
EN

Stack Overflow用户

发布于 2013-12-09 17:03:40

迁移的“版本”是通过时间戳完成的。Rails通过比较上一次运行的迁移的时间戳并查看是否有更新的迁移来检查它需要运行哪些迁移。

如果新迁移的版本是123123123,它将不会运行,因为该数字不大于当前时间戳(例如,20131209170300)。

票数 1
EN

Stack Overflow用户

发布于 2018-02-08 07:35:47

我也有同样的问题...事实证明,这是因为我编辑了迁移文件的名称,使其看起来更整洁。确保您没有像我一样删除迁移文件标题中的时间戳。

我删除了迁移文件、模型、控制器和相关的测试,并重新生成了修复问题的控制器和模型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20464924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档