Betül SARAL

Bilgisayar Mühendisi

Rails De Sqlite3 Veritabanını Mysql'e Aktarmak

| Comments

Veritabanını Sqlite 3 ile sağladığınız bir rails projesinde , her ne kadar ilerlemiş olursanız olun her zaman mysql’e çevirme şansınız vardır.İlk olarak ;

database.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
	development:
	  adapter: mysql2
	  encoding: utf8
	  reconnect: false
	  database: databasename_development
	  pool: 5
	  username: root
	  password: ["parola"]
	  socket: /var/run/mysqld/mysqld.sock

	test:
	  adapter: mysql2
	  encoding: utf8
	  reconnect: false
	  database: databasename_test
	  pool: 5
	  username: root
	  password: ["parola"]
	  socket: /var/run/mysqld/mysqld.sock

	production:
	  adapter: mysql2
	  encoding: utf8
	  reconnect: false
	  database: databasename_production
	  pool: 5
	  username: root
	  password: ["parola"]
	  socket: /var/run/mysqld/mysqld.sock
	

şimdi bu kodları terminale girmemiz gerekiyor.

Terminal
1
2
3
$ bundle exec rake db:create

$ bundle exec rake db:schema:dump

bu koddan sonra aşağıdaki gibi bir hata alıyorsanız ;

Terminal
1
2
3
4
5
rake aborted!

Please install the mysql2 adapter: gem install activerecord-mysql2-adapter
   (mysql2 is not part of the bundle.
Add it to Gemfile.)

Bu hata için;

Terminal
1
$ sudo gem install activerecord-mysql2-adapter
Gemfile
1
gem "activerecord-mysql2-adapter"
Terminal
1
2
3
$ bundle

$ bundle exec rake db:load

Ve hata alırız:

Terminal
1
2
3
4
	rake aborted!
	Don't know how to build task 'db:load'
	(See full trace by running task with --trace)
	
Gemfile
1
gem 'yaml_db'
Terminal
1
2
3
4
5
$ bundle

$ bundle exec rake db:load

$ bundle exec rake db:migrate

Ve veritabanlarımızı mysql’e aktarmış olduk.Eğer sisteminiz de phpmyadmin varsa, aktarmış olduğumuz tabloları orda takip edebilirsiniz.

UYARI :

Eğer rails server çalıştırdığınız da

Terminal
1
mysql undefined method `accept' for nil:NilClass

hatasını alıyorsanız Gemfile içerisinde gem "activerecord-mysql2-adapter" silmeniz gerekiyor.Ayrıca gem "mysql2", ">= 0.3.11" Gemfile içerisinde bulunması gerekir.Bu işlemleri yaptıktan sonra veritabanınızda bulunan tüm tabloları silin ve yeniden oluşturun yani :

Terminal
1
$ rake db:migrate

ve seed dosyanız dolu ise;

Terminal
1
$ rake db:seed

Kolay gelsin.

Comments