hallo,
sql = "BEGIN; #{File.read('db/test_data.sql')}; COMMIT;"
cmd = "mysql -u user_name -D database_name -e '#{sql}'"
`cmd`
sollte funktionieren. in nem rake task fände ich das auch legitim. die
db-zugangsdaten kannst du dir aus der database.yaml holen:
rails_env = ENV['RAILS_ENV'] || 'development'
db_config = YAML.load(File.read("config/database.yml"))[rails_env]
ist natürlich nicht so schön, wie es in direkt in ruby zu machen, aber
sicher schneller. der rake-task benötigt jetzt den mysql-client auf
dem rechner.
wie schon vorgeschlagen könntest du die daten im dump auch in fixtures
konvertieren, vielleicht bieten sich hier CSV-fixtures an -- http://ar.rubyonrails.org/classes/Fixtures.html
viele grüße,
phillip
--
Am 15.08.2008 um 12:53 schrieb Jan Luehr:
Hallo,
ich habe einen kleinen rake-Task geschrieben, der vor dem Testen
Testdaten in
die Datenbank schreibt:
http://pastie.org/253485
Was dabei nervig ist, dass ich auf die Schleife (Zeile 6-8)
angewiesen bin, da
Zeile 9 (auskommentiert) knallt, wenn Das SQL-File mehr als eine
Anweisung
hat.
Problematisch ist nur, dass der Split (Zeile 2) bricht, wenn im SQL
in einem
Daten- oder Kommentarfeld ein ; steht.
Gibt es eine Möglichkeit, das ganze SQL-File einfach in die
Datenbank zu
schreiben?
Danke,
Keep smiling
yanosz
_______________________________________________
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug
_______________________________________________
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug