Seguendo il post: Come migrare da SQLite a PostgreSQL (Rails)
Sto correndo sqlite3 development.sqlite3 .dump | psql mypgdb mypguser
nella mia app Rails e ricevo questo errore (lo stesso per tutti i modelli / tabelle nella mia app):
ERROR: current transaction is aborted, commands ignored until end of transaction block
ERROR: current transaction is aborted, commands ignored until end of transaction block
ERROR: current transaction is aborted, commands ignored until end of transaction block
ERROR: current transaction is aborted, commands ignored until end of transaction block
ERROR: current transaction is aborted, commands ignored until end of transaction block
ERROR: current transaction is aborted, commands ignored until end of transaction block
ERROR: current transaction is aborted, commands ignored until end of transaction block
ERROR: current transaction is aborted, commands ignored until end of transaction block
ERROR: current transaction is aborted, commands ignored until end of transaction block
ERROR: current transaction is aborted, commands ignored until end of transaction block
ERROR: current transaction is aborted, commands ignored until end of transaction block
ERROR: syntax error at or near "AUTOINCREMENT"
LINE 1: ...E TABLE "projects" ("id" INTEGER PRIMARY KEY AUTOINCREM...
Apprezzerei alcuni suggerimenti / risolti. Grazie!
risposte:
2 per risposta № 1Questo non è un SQL valido per PostgreSQL - probabilmente vuoi un file SERIALE invece di INTEGER AUTOINCREMENT. Potresti volerlo impostare manualmente il valore successivo anche di queste sequenze al massimo (id) +1.
Quindi dovrai occuparti di tutte le altre differenze tra uno sqlite per lo più senza tipo e un PostgreSQL rigoroso.
Allora vorrai smettere di usare sistemi differenti nella tua configurazione di sviluppo e durante la distribuzione.
0 per risposta № 2
Ti consiglio di usare gem "yaml_db"
, lo scopo è spostare le tabelle da un database a un altro.
https://github.com/ludicast/yaml_db#readme
Puoi fare tutto semplicemente con questo gioiello con una bella documentazione. Ha 2 comandi di base, quindi niente di difficile.