Notizen zu Ruby on Rails, PostgreSQL und ZenTest
Hat mich gerade einige Zeit gekostet:
- Wenn PostgreSQL und LCC (unter Windows) installiert sind, muss PostgreSQL vor LCC im PATH kommen. Beide haben nämlich eine createdb.exe, und Rails benutzt (z.B. bei rake test) sonst die createdb.exe von LCC, die zwar keinen Fehler ausgibt, aber die Datenbank auch nicht erstellt. Folglich geht dann der Rest nicht.
- Die aktuelle ZenTest-Version funktioniert unter Windows nicht so richtig. Zum Beheben kann man in der lib/autotest.rb ruby() ersetzen durch:
def ruby
if Config::CONFIG['target_os'] == "mswin32"
return Config::CONFIG['ruby_install_name']
else
return File.join(Config::CONFIG['bindir'],
Config::CONFIG['ruby_install_name'])
end
endAußerdem weiter unten in test() cmd ersetzen durch:
cmd = "#{ruby} -Ilib:test -e \"#{tests.inspect.gsub('"',"'")}.each { |f| load f }\" | unit_diff -u"Dann muss ruby.exe auch im PATH sein, aber dafür klappts mit den Tests.
- In Migrations kann man auch SQL-Code ausführen (execute "..."). So kann man bei PostgreSQL Foreign Keys anlegen. Noch einfacher geht's mit Migrate Plus (hab ich aber noch nicht probiert).
