【问题标题】:Can I use just migrations from rails to maintain a database schema?我可以只使用从 Rails 迁移来维护数据库模式吗?
【发布时间】:2009-09-19 06:08:10
【问题描述】:
我们的应用程序不会在其最终状态的任何部分使用 rails,但根据我的经验,迁移是定义架构的绝佳方式,因此我只想使用 rails 的这一方面。
这是合理的做法吗?如果没有,是否有任何工具可以用于执行相同类型的工作?我们有一个三阶段的部署环境,包括测试、QA 和生产层,所以这很好地映射到 rails 使用的层。但是,我们主要是一家 Python 商店,所以 Python 的等价物会很漂亮。
【问题讨论】:
标签:
ruby-on-rails
database
schema
migration
【解决方案1】:
我没有任何特别的选择可以给你。但是,如果您决定使用迁移,您必须知道您不需要仅将整个 Rails 架构用于迁移。
只要您安装了 active_record gem,您就可以:
在你的 Rakefile 中
require 'active_record'
require 'yaml'
task :default => :migrate
在同一路径的文件中:
desc "Migrate the database through scripts in db/migrate. Target specific version with VERSION=x"
task :migrate => :environment do
ActiveRecord::Migrator.migrate('db/migrate', ENV["VERSION"] ? ENV["VERSION"].to_i : nil )
end
task :environment do
ActiveRecord::Base.establish_connection(YAML::load(File.open('database.yml')))
ActiveRecord::Base.logger = Logger.new(File.open('database.log', 'a'))
end
还有您在 db/migrate 文件夹中的迁移。
您不需要整个活动资源和所有轨道基础。
【解决方案2】:
我会在谷歌上搜索 python 等价物。迁移很有趣,如果你喜欢这样工作并且它有效,那么它当然是合理的。但是,您应该遵循建议并定期检查 schema.rb,而不是指望迁移来构建您的生产服务器。