首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rake db:重置忽略对迁移的更改。

问rake db:重置忽略对迁移的更改。
EN

Stack Overflow用户
提问于 2014-08-01 21:48:20
回答 1查看 83关注 0票数 1

我有一个指定mySQL列大小的迁移:

代码语言:javascript
复制
class CreateEntities < ActiveRecord::Migration
  def change
    create_table :entities do |t|
      ...
      t.string  :telephone, limit: 50
      ...
    end
  end
end

最初,这个限制是20。

我似乎无法将这个新的限制应用到数据库中。

我试过:

代码语言:javascript
复制
> rake db:reset

也是

代码语言:javascript
复制
> rake db:drop
> rake db:setup

旧的价值依然存在。

我也删除了schema.rb文件,但是当重新创建它时,它仍然包含旧的值:

代码语言:javascript
复制
ActiveRecord::Schema.define(version: 20140718164541) do

    create_table "entities", force: true do |t|
      ...
      t.string   "telephone",     limit: 20
      ...
    end

如果有关系的话,我在用吉特。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-01 22:06:18

rake db:reset不会重新运行您的迁移。它清除数据库,加载架构,然后设置任何种子。若要更改已存在的列的限制,应创建更改该列的新迁移:

代码语言:javascript
复制
class ChangeEntitiesTelephoneLimit < ActiveRecord::Migration
  def change
    change_column :entities, :telephone, :string, limit: 50
  end
end

如果您真的想重用相同的迁移,请删除并重新创建数据库,然后运行迁移:

代码语言:javascript
复制
rake db:drop
rake db:create
rake db:migrate
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25089170

复制
相关文章

相似问题

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