====== Migration von MariaDB zu PostgreSQL in Rails ====== Die nachfolgenden Schritte beschreiben den Wechsel der Datenbank in einem Rails-Projekt von einer MariaDB-Datenbank zu PostgreSQL. * Zuerst muss der Datenbank-Adapter gewechselt werden. Füge das entsprechende Gem deinem ''Gemfile'' hinzu: gem 'pg' * Passe nun die Konfiguration in der ''database.yml'' an: development: &default_settings adapter: postgresql host: localhost database: database_name username: username password: password encoding: unicode * Überlichweise hat das Konto zur Ausführung der Rails-Anwendung nicht ausreichend Rechte, um eine Datenbank anzulegen. Insofern muss dies manuell erfolgen: su - postgres psql create user database_user with password 'secret1234'; create database database_name encoding 'UTF8' LC_COLLATE='C' LC_CTYPE='C' template=template0 OWNER database_user; * Lade nun das Rails-Datenbankschema: rails db:schema:load * Erstelle ein Dump der MariaDB-Datenbank: mysqldump -u username -p database_name > database_name.sql * Installiere [[https://github.com/dimitri/pgloader|pgloader]]: apt install pgloader * Erstelle eine Migrationsdatei - zum Beispiel: ''migration.load'': -- Angabe der Datenbankverbindungen LOAD DATABASE FROM mysql://database_:user:database_password@localhost/database_name INTO postgresql://database_user:database_password@localhost/database_name -- Nur Daten und kein Schema importieren -- Vorhandene Tabellen leeren WITH data only, truncate -- Umbenennen des Schemas ALTER SCHEMA 'database_name' RENAME TO 'public'; * Führe nun ''pgloader'' aus: pgloader --verbose migration.load * Nach erfolgreichen Durchlauf von ''pgloader'' ist die Migration abgeschlossen. Du kannst deine Rails-Anwendung nun starten. ---- ====== Links ====== * https://hlcfan.github.io/migrate-from-mysql-to-postgresql-rails.html * https://gist.github.com/tristanm/a2afa29ac6f37bf92b46