我刚刚加入了一个开发rails引擎的项目,该项目还有一个用于测试的虚拟应用程序。
foo/
foo/spec/dummy/中有相同的迁移
foo/db/migrate/
foo/spec/dummy/db/migrate/如果我从虚拟应用程序rake db:migrate,一切都是好的。如果我从引擎(当前目录= foo)执行相同的操作,就会得到一个关于具有相同名称的多次迁移的错误。
( Q1) Rakefiles家族是有边界的吗?( db:migrate应该恢复到虚拟应用程序吗?)
Q2)迁移应该只在一个目录中吗?如果是,是哪一个?
我们使用的是Rails 3.2.9,ruby 1.9.3p194。
发布于 2013-02-07 04:49:32
问题1
Rakefile应该有一个条目来说明规范/虚拟应用程序。例如,
Bundler::GemHelper.install_tasks
APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
load 'rails/tasks/engine.rake'下面是更详细的rakefile示例,engine/blob/engine2/Rakefile
问题2
IMO,迁移应该只存在于foo/db/文件夹中,而不是/spec//db/。实际上,我没有版本控制虚拟的db/迁移或db/schema。
为什么?我使用的虚拟应用程序,确保一个完整的安装我的引擎工作100%。因此,如果我的版本控制foo/spec/dummy状态,我就会像前面的安装一样进行测试。
示例引擎
https://stackoverflow.com/questions/14465754
复制相似问题