Ruby on Rails 앱을 sqlite에서 MySQL로 변환 하시겠습니까?
Ruby on Rails로 앱을 만들었고 이제 호스팅하고 싶습니다. 그러나 MySQL을 사용해야하고 sqLite3를 사용하여 설정했습니다. MySQL을 사용하도록 변환하는 방법이 있습니까?
0 단계
안전을 위해 가상 머신에서이 기술을 약간 실험 해 보는 것이 좋습니다. 마음의 고통을 덜고 가상 머신을 구축하고 코드를 확인하고 비극이 닥치면 버릴 수있는 안전한 놀이터를 마련하세요.
1 단계
database.yml 파일의 백업 사본을 만듭니다.
(응용 프로그램 루트에서)
cp config/database.yml config.database.yml.sqlite3
2 단계
데이터의 백업 사본 만들기
Rails 3의 경우 YAML DB gem을 설치합니다 : https://github.com/ludicast/yaml_db
Rails 2.x의 경우 YAML DB 플러그인을 설치합니다.
script/plugin install git://github.com/adamwiggins/yaml_db.git
덤프 작업 실행
rake db:dump
3 단계
config / 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**
Be sure to update the values surrounded by asterix as appropriate for your platform! The socket value is only good for Mac OSX using MacPorts. Most flavors of linux do not require this value.
Step 5
If you have some errors in the following step, you might have to install the mysql gem:
sudo gem install mysql
Have rake create your database
rake db:create
rake db:schema:load
Step 6
Use YamlDb to reload your data into MySql
rake db:load
As long as you have not written any SQL statements that run in sqlLite3 and not MySQL (which you won't have if all your database access is via ActiveRecord and ActiveRecord migrations) then all you need to do is change the database adapter in your database.yml config file.
Check Taps. I've successfully converted a Mysql database to Postgres with it --it should support SQLite.
Edit: Including working link from cony's comment here.
If there's no data to migrate, simply update database.yml and run 'rake db:schema:load' in the new environment. (NOT db:migrate which should only be used for incremental migrations!)
myproject user$ cd
user $ rails new myproject -d mysql
Say 'no' for all question but for Overwrite .../myproject/config/*database.yml*? (enter "h" for help) [Ynaqdh]
say 'yes'.
참고URL : https://stackoverflow.com/questions/1670154/convert-a-ruby-on-rails-app-from-sqlite-to-mysql
'IT Share you' 카테고리의 다른 글
내 앱이 언제 종료되었는지 어떻게 알 수 있습니까? (0) | 2020.12.14 |
---|---|
axios로 Bearer 토큰 보내기 (0) | 2020.12.14 |
일부 bash 스크립트에서 사용되는 'function'키워드는 무엇입니까? (0) | 2020.12.14 |
apache가 localhost 외부에서 들어오는 연결을 수락하지 않습니다. (0) | 2020.12.14 |
다른 머신에서 복사 한 스냅 샷 (rdb 파일)에서 redis 데이터를 복구하는 방법은 무엇입니까? (0) | 2020.12.14 |