我有一个名为Foo的宝石。在这个宝石中,我有两个分支:master
和develop
。
在我的项目中,我需要使用develop
分支(包含新的迁移)。
所以在我的gemfile中我添加:
gem "foo", git: "https://github.com/orsay/foo.git", branch: "develop"
然后运行bundle install
,然后重新启动我的服务器。
这是我在使用localhost时遇到的错误:3000:
PG :: UndefinedColumn:错误:列my_added_column不存在。
为什么会这样?我不需要从gem中导入迁移...
当我运行bundle show foo
时,代码是正确的。
请问好吗? :)
答案 0 :(得分:0)
运行rake db:migrate
时,不会运行gems中定义的迁移。希望迁移父 - 应用程序数据库的宝石应定义Rails Engine,这将使rake任务可用于在主机应用程序中安装gem迁移。例如,在您的情况下(Gem为foo
),bundle exec rake foo:install:migrations
。您的gem必须正确配置为Rails引擎才能执行此操作。
作为安装迁移的替代方法,您可以使用初始化程序在所需的gem中自动运行迁移,如果您更愿意这样做,但它有点复杂。在Syncing Migrations
中有更详细的信息