Metainformationen zur Seite
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 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.