ruby-on-rails - 类似 Rails 的数据库迁移?

标签 ruby-on-rails ruby database refactoring migration

是否有任何易于安装/使用(在 unix 上)的数据库迁移工具,例如 Rails Migrations?我真的很喜欢这个想法,但是纯粹为了管理我的数据库迁移而安装 ruby​​/rails 似乎有些过分了。

最佳答案

只需使用 ActiveRecord 和一个简单的 Rakefile。例如,如果您将迁移放在 db/migrate 目录中,并且有一个包含您的数据库配置的 database.yml 文件,那么这个简单的 Rakefile 应该可以工作:

Rakefile:

require 'active_record'
require 'yaml'

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(STDOUT)
end

数据库.yml:

adapter: mysql
encoding: utf8
database: test_database
username: root
password:
host: localhost

之后,您将能够运行 rake migrate 并在没有周围的 Rails 应用程序的情况下获得所有迁移的优点。

或者,我有一组 bash 脚本,它们执行与 ActiveRecord 迁移非常相似的功能,但它们只适用于 Oracle。在切换到 Ruby 和 Rails 之前,我曾经使用过它们。它们有些复杂,我不提供支持,但如果您有兴趣,请随时与我联系。

关于ruby-on-rails - 类似 Rails 的数据库迁移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/101868/

相关文章:

ruby - 如何对 Ruby 数组中的相同元素进行分组

database - 某些网站不允许在密码中使用句点是有原因的吗?

php - 创建 PHP 对象时重用数据库连接

html - CSS 拉伸(stretch) 2 列 grail 以满足页脚

ruby-on-rails - .rewind 方法对 ruby​​ 中的 Tempfile 做了什么?

ruby-on-rails - 使用 Devise 创建 "Users"显示页面

ruby-on-rails - 如何确定在 Rails 中的 Twilio 调用期间调用接收者是否挂断

html - 在 ruby​​ cgi 中更改 html 属性

ruby - 遍历数组的每个元素,除了第一个

php - 窗口上的 voltDB