문제

Rails 마이그레이션과 같이 설치/사용하기 쉬운(unix에서) 데이터베이스 마이그레이션 도구가 있습니까?아이디어는 정말 마음에 들지만, 데이터베이스 마이그레이션을 관리하기 위해 Ruby/Rails를 설치하는 것은 지나친 것 같습니다.

도움이 되었습니까?

해결책

ActiveRecord와 간단한 Rakefile을 사용하세요.예를 들어, 마이그레이션을 db/migrate 디렉토리가 있고 database.yml db 구성이 있는 파일을 삭제하면 다음과 같은 간단한 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 앱 없이도 마이그레이션의 모든 장점을 누릴 수 있습니다.

또는 ActiveRecord 마이그레이션과 매우 유사한 기능을 수행하지만 Oracle에서만 작동하는 bash 스크립트 세트가 있습니다.Ruby와 Rails로 전환하기 전에는 이 기능을 사용했습니다.다소 복잡하고 지원을 제공하지 않습니다. 하지만 관심이 있으시면 언제든지 저에게 연락해 주세요.

다른 팁

라는 프로젝트도 있어요 Java 데이터베이스 마이그레이션.코드를 얻으려면 다음을 확인하세요. 프로젝트의 Google 코드 페이지.

이 주제는 정말 오래되었지만 미래의 Google 직원을 위해 참고하겠습니다.

저는 Python의 SQLAlchemy를 사용하는 것을 정말 좋아합니다. SQLAlchemy-마이그레이션 ActiveRecord::Migrate 경로를 사용하고 싶지 않은 경우 버전 제어가 필요한 데이터베이스를 관리해야 합니다.

개인적으로 해본 적은 없지만 다른 Rails 기능 없이 ActiveRecord::Migration을 사용하는 것이 가능할 것입니다.로드 경로를 올바르게 설정하는 것은 어려운 부분이지만 실제로 필요한 것은 rake 작업과 db/migrate 디렉토리와 그들이 의존하는 Rails gem이 무엇이든 가능합니다. activerecord, actviesupport 어쩌면 다른 사람들도 좋아할 것 같아요 railties.나는 그것을 시도하고 어떤 클래스가 누락되었는지 확인하고 해당 클래스를 추가할 것입니다.

이전 회사에서 우리는 ActiveRecord::Migration이 수행하는 작업을 본질적으로 수행하는 도구를 구축했습니다. 단, 이 도구는 Maven 플러그인으로 Java로 작성되었습니다.그것이 한 일은 SQL 스크립트의 텍스트 덩어리를 모으는 것뿐이었습니다.파일 이름의 순서를 잘 파악하고 버전 관리 테이블을 업데이트하는 방법을 알아야 합니다.

이 프로젝트는 Rails를 설치하지 않고도 활성 레코드 마이그레이션을 실행할 수 있도록 설계되었습니다.

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

이를 설치(git clone)하고 프로젝트의 기반으로 사용하세요.

Haskell로 작성된 도구는 다음과 같습니다.

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top