首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在其他插件中安装Rails 3插件中的数据库架构

如何在其他插件中安装Rails 3插件中的数据库架构
EN

Stack Overflow用户
提问于 2012-09-21 02:01:49
回答 1查看 234关注 0票数 0

我正在编写一个Rails3插件,它使用了我最近编写的另一个Rails3插件。我们称它们为7月和8月。所以在奥古斯特的gemspec中,我添加了一行:

代码语言:javascript
复制
s.add_dependency "july", "~> 0.0.1"

我运行bundle install。然后我创建了一些模型和夹具。接下来,我需要迁移数据库:

代码语言:javascript
复制
$ cd test/dummy
$ rake august:install:migrations
$ rake db:migrate

现在,八月(我正在创建的插件)表在开发和测试数据库中,但七月表不在。但是我的8月表有指向我的7月表的外键,所以在运行任何测试之前,我需要创建7月表并编写适当的fixture。我希望运行rake -T并查看

代码语言:javascript
复制
rake august:install:migrations
rake july:install:migrations

但我看到的只是august rake任务。那么我该如何创建7月份的数据库表(除了创建一个新的迁移,这将违反DRY,因为我已经在我的7月份代码库中这样做了)?

EN

回答 1

Stack Overflow用户

发布于 2012-09-21 20:36:52

虚拟应用程序必须直接依赖于“七月”才能加载“七月”的rake任务。所以我需要把它包含在Gemfile中,而不是gempspec中。然而,把它放在Gemfile中并不会强迫真正的(非虚拟的)应用程序在我把“bundle install”放入他们的Gemfile/gemspec之后安装七月。

因此,我需要在两个位置都包含它--在rake任务的Gemfile中(这可以在:development组中),以及在gemspec中(使用add_dependencyadd_runtime_dependency),以强制安装依赖项。这就是解决方案,但我不明白为什么。

我试图在我的评论here中解释我对此的想法,但我真的不能准确地指出任何解释这种设计方法的逻辑。有人能解释一下真正的原因吗?

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

https://stackoverflow.com/questions/12518232

复制
相关文章

相似问题

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