Verfasst von Stephan Schielke
Veröffentlicht am 03.03.2015
Die Installation gestaltet sich einfach, da alle Packages bereits im Hauptrepository liegen
(http://de.archive.ubuntu.com/ubuntu/ trusty main)
Als nächstes müssen wir einen Datenbankbenutzer anlegen. Hierfür wechseln wir über den neu angelegten postgres Systembenutzer in die PostgreSQL-Konsole:
Es öffnet sich die PostgreSQL-Konsole ("postgres=#" als Indikator). Dort erzeugen wir einen DB-Superuser mit Passwort.
Die PostgreSQL-Konsole kann mit folgendem Befehl verlassen werden.
Die Gemfile muss angepasst werden. Dafür muss das alte Datenbankgem (in meinem Fall sqlite3) entfernt oder auskommentiert werden. Das neue gem "pg" muss sowohl in der development als auch test Bundler-Gruppe vorhanden sein.
Benutzen alle Bundler-Gruppen eine PostgreSQL-Datenbank in gleicher Version, kann das pg-gem auch global, außerhalb der Bundler-Gruppen verwendet werden.
Als nächstes muss die database.yml im config-Ordner angepasst werden:
Das neue gem pg muss gebündelt werden:
Die Datenbankschemas werden über folgende Befehle angelegt:
Am besten Testen und Entwickeln lässt es sich mit den Echtdaten aus dem Live-System. Sind sowohl die Entwicklungsdatenbank, als auch die Produktionsdatenbank auf Heroku, PostgreSQL-Datenbanken, ist es relativ einfach einen Datenexport/-import durchzuführen.
Zuerst müssen wir ein Heroku-Plugin installieren. Vorraussetzung ist ein installierter Heroku-Toolbelt. Mit folgendem Befehl wird das pgbackups-Plugin installiert.
In der neuesten Version des Heroku-Toolbelts ist das pgbackup-Addon bereits vorhanden.
Mit diesem Plugin ist es möglich einen Snapshot/Backup der Datenbank anzulegen:
Folgender Befehl bekommt vom pgbackups-Plugin eine URL zum gerade erzeugtem Datenbankbackup und speichert dieses lokal in die Datei "heroku_db.dump". Vorraussetzung ist ein installiertes cURL.
Zum Schluss noch wird das Heroku-DB-Backup in die lokale PostgeSQL-Datenbank importiert. Hierfür können wir die Wiederherstellungsfunktion von PostgreSQL verwenden:
"rails-app-dev" ist der Name eurer Datenbank welche in der database.yml angegeben wurde.
Es erscheint eine Passworteingabe in der ihr das <neue_passwort> eintragt.
Wiederholt den Schritt für eure Testdatenbank wenn ihr wollt.
Viel Erfolg!
Getestet unter Ruby on Rails 4.1.0 mit pg gem 14.1 und installiertem postgresql 9.3.