복붙노트

[RUBY-ON-RAILS] MySQL로 sqlite가에서 레일 응용 프로그램에 루비를 변환?

RUBY-ON-RAILS

MySQL로 sqlite가에서 레일 응용 프로그램에 루비를 변환?

나는 레일에 루비에서 응용 프로그램을 만들어 지금은 호스팅 싶어. 그러나 그들은 내가 MySQL을 사용 할 것을 요구하고 있습니다 내가 sqlite3를를 사용하여 설정할 수 있습니다. 이 MySQL을 사용하기로 변환하는 방법은 없나요?

해결법

  1. ==============================

    1.안전을 위해, 나는 가상 머신에서이 기술로 약간의 실험을하는 것이 좋습니다. 상심 한 무리의 자신을 저장하는 코드를 확인, 가상 머신을 구축, 당신은 비극 파업 경우 멀리 던질 수있는 안전한 놀이터가 있습니다.

    안전을 위해, 나는 가상 머신에서이 기술로 약간의 실험을하는 것이 좋습니다. 상심 한 무리의 자신을 저장하는 코드를 확인, 가상 머신을 구축, 당신은 비극 파업 경우 멀리 던질 수있는 안전한 놀이터가 있습니다.

    당신의 database.yml을 파일의 백업 복사본을 만듭니다.

    (응용 프로그램 루트에서)

    CP 설정 / database.yml을 config.database.yml.sqlite3

    데이터의 백업 복사본을 만듭니다

    https://github.com/ludicast/yaml_db : 레일 3의 경우, YAML DB 보석을 설치

    레일의 경우 YAML DB 플러그인을 설치 2.X :

    스크립트 / 플러그인 키트를 설치 gitubkamadanvigginsemmeldabgit를

    덤프 작업을 실행

    DB를 긁어 : 덤프를

    당신의 설정 / database.yml을 파일을 업데이트합니다. 당신은 같은 항목을 찾을 수 있습니다

    development:
      adapter: sqlite3
      database: db/development.sqlite3
      timeout: 5000
    test:
      adapter: sqlite3
      database: db/test.sqlite3
      timeout: 5000
    production:
      adapter: sqlite3
      database: db/production.sqlite3
      timeout: 5000
    

    으로 변경

    development:
      adapter: mysql
      encoding: utf8
      reconnect: false
      database: **myapp_development**
      pool: 5
      username: **root**
      password: **supersecretpassword**
      **socket: /opt/local/var/run/mysql5/mysqld.sock**
    test:
      adapter: mysql
      encoding: utf8
      reconnect: false
      database: **myapp_test**
      pool: 5
      username: **root**
      password: **supersecretpassword**
      socket: **/opt/local/var/run/mysql5/mysqld.sock**
    
    production:
      adapter: mysql
      encoding: utf8
      reconnect: false
      database: **myapp_production**
      pool: 5
      username: **root**
      password: **supersecretpassword**
      socket: **/opt/local/var/run/mysql5/mysqld.sock**
    

    값이 플랫폼에 맞게 별표로 둘러싸인 업데이트해야합니다! 소켓 값은 맥 OSX는 MacPorts를를 사용하는 경우에만 좋다. 리눅스의 대부분 맛이 값이 필요하지 않습니다.

    다음 단계에서 약간의 오차가있는 경우에, 당신은 MySQL의 보석을 설치해야 할 수도 있습니다 :

    sudo gem install mysql
    

    레이크 데이터베이스를 만들게

    rake db:create
    rake db:schema:load
    

    YamlDb 사용은 MySQL을로 데이터를 다시로드

    DB를 긁어 : 부하를

  2. ==============================

    2.만큼 당신이 sqlLite3에서 실행되지 MySQL은 (모든 데이터베이스 액세스가 액티브 및 액티브 마이그레이션을 통해 경우에 당신은 필요가 없습니다하는) 것을 모든 SQL 문을 작성하지 않은 것처럼 모든 당신이 할 필요가 데이터베이스에 데이터베이스 어댑터를 변경할 수 있습니다 .yml 설정 파일.

    만큼 당신이 sqlLite3에서 실행되지 MySQL은 (모든 데이터베이스 액세스가 액티브 및 액티브 마이그레이션을 통해 경우에 당신은 필요가 없습니다하는) 것을 모든 SQL 문을 작성하지 않은 것처럼 모든 당신이 할 필요가 데이터베이스에 데이터베이스 어댑터를 변경할 수 있습니다 .yml 설정 파일.

  3. ==============================

    3.도청을 확인합니다. 나는 성공적 --it SQLite는 지원해야 그것으로 포스트 그레스에 MySQL 데이터베이스를 변환했습니다.

    도청을 확인합니다. 나는 성공적 --it SQLite는 지원해야 그것으로 포스트 그레스에 MySQL 데이터베이스를 변환했습니다.

    편집 : 여기 토끼의 주석에서 링크를 작업 포함.

  4. ==============================

    4.마이그레이션 할 데이터가없는 경우, 단순히 '레이크 DB를 : 스키마 : 부하'database.yml을 업데이트하고 실행하는 새로운 환경을. (NOT DB를 : 마이그레이션 증분 마이그레이션으로 만 사용되어야하는!)

    마이그레이션 할 데이터가없는 경우, 단순히 '레이크 DB를 : 스키마 : 부하'database.yml을 업데이트하고 실행하는 새로운 환경을. (NOT DB를 : 마이그레이션 증분 마이그레이션으로 만 사용되어야하는!)

  5. ==============================

    5.

    myproject  user$ cd
    user   $ rails new myproject -d mysql
    

    모든 질문에 대한하지만, 덮어 쓰기 ... / myproject라는 / 설정 / * database.yml을 *에 대한 말 '아니오'? [Ynaqdh] '예'라고 (도움 "시간"을 입력).

  6. from https://stackoverflow.com/questions/1670154/convert-a-ruby-on-rails-app-from-sqlite-to-mysql by cc-by-sa and MIT license