18

Rails Migrations のような簡単にインストール/使用できる (UNIX 上での) データベース移行ツールはありますか? このアイデアはとても気に入っていますが、データベースの移行を管理するためだけに ruby​​/rails をインストールするのはやり過ぎに思えます。

4

6 に答える 6

23

ActiveRecordと単純なRakefileを使用するだけです。たとえば、移行をdb/migrateディレクトリに配置しdatabase.yml、db構成を持つファイルがある場合、この単純な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

database.yml

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

rake migrateその後、周囲のRailsアプリがなくても、実行してすべての移行機能を利用できるようになります。

または、ActiveRecordの移行と非常によく似た機能を実行する一連のbashスクリプトがありますが、これらはOracleでのみ機能します。私はRubyとRailsに切り替える前にそれらを使用していました。それらはやや複雑で、私はそれらをサポートしませんが、興味があれば、遠慮なく私に連絡してください。

于 2008-09-19T19:41:57.757 に答える
4

Java Database Migrationsというプロジェクトもあります。コードを取得するには、プロジェクトの Google Code ページを確認してください。

于 2008-09-20T02:35:05.440 に答える
3

このトピックは非常に古いものですが、今後の Google 社員のために参考にさせていただきます。

ActiveRecord::Migrate ルートに行きたくない場合は、 Python の SQLAlchemy とSQLAlchemy-Migrateを使用して、バージョン管理が必要なデータベースを管理するのが本当に好きです。

于 2009-12-27T15:11:11.830 に答える
1

このプロジェクトは、Rails をインストールせずにアクティブなレコードの移行を実行できるように設計されています。

https://github.com/bretweinraub/rails-free-DB-Migrate

インストール (git clone it) して、プロジェクトのベースとして使用します。

于 2011-05-04T08:55:33.913 に答える
1

私は個人的にそれを行っていませんが、ActiveRecord::Migration を他の Rails のものなしで使用できるはずです。ロード パスを正しく設定するのは難しい部分ですが、実際に必要なのは、rakeタスクとディレクトリに加えて、db/migrateそれらが依存する Rails gem (おそらく. 私はそれを試して、不足しているクラスを確認して追加します。activerecordactviesupportrailties

以前の会社では、Maven プラグインとして Java で書かれていることを除いて、ActiveRecord::Migration が行うことと本質的に同じことを行うツールを作成しました。SQL スクリプトのテキスト BLOB を組み立てただけです。ファイル名の順序について賢く、バージョン管理テーブルを更新する方法を知っている必要があります。

于 2008-09-19T14:38:34.680 に答える
0

Haskell で書かれたこれを行うためのツールを次に示します。

http://hackage.haskell.org/package/dbmigrations

于 2011-12-07T15:45:23.483 に答える