2012-03-07 7 views
0

私はHerokuがPostgresqlを必要としていることを知らずにRailsでプロジェクトを開始しました。今私はsqlite3テーブルをpostgresqlテーブルに変換したいと思います。どうしたらいいですか?sqlite3テーブルをpostgresqlテーブルに変換するには?

私は、私は、PostgreSQLを使用するレールを伝えるために、クリスのソリューションを使用する:ここで私が問題を解決する方法である

BEGIN TRANSACTION; 
insert into places ("id", "name", "content", "tags", "created_at", "updated_at") values ('0', 'bac à papier', NULL, 'bac de recyclage', '13309980782012-03-06 03:57:21.219233', '13309980782012-03-06 03:57:21.219233'); 
insert into places ("id", "name", "content", "tags", "created_at", "updated_at") values ('1', 'bac PVM', 'plastique/verre/métal', NULL, '13310076572012-03-06 03:57:21.219233', '13310076572012-03-06 03:57:21.219233'); 
insert into places ("id", "name", "content", "tags", "created_at", "updated_at") values ('2', 'bac de déchets', NULL, 'poubelle', '13310076572012-03-06 03:57:21.219233', '13310076572012-03-06 03:57:21.219233'); 
insert into places ("id", "name", "content", "tags", "created_at", "updated_at") values ('3', 'cafétéria', '', '', '2012-03-06 03:57:21.219233', '2012-03-06 03:57:21.219233'); 
insert into places ("id", "name", "content", "tags", "created_at", "updated_at") values ('4', 'compost', NULL, NULL, '2012-03-06 03:57:21.219233', '2012-03-06 03:57:21.219233'); 
insert into places ("id", "name", "content", "tags", "created_at", "updated_at") values ('5', 'consigne', NULL, NULL, '2012-03-06 03:57:21.219233', '2012-03-06 03:57:21.219233'); 
insert into places ("id", "name", "content", "tags", "created_at", "updated_at") values ('6', 'CRD', NULL, NULL, '2012-03-06 03:57:21.219233', '2012-03-06 03:57:21.219233'); 
insert into places ("id", "name", "content", "tags", "created_at", "updated_at") values ('7', 'ressources matérielles', NULL, NULL, '2012-03-06 03:57:21.219233', '2012-03-06 03:57:21.219233'); 
insert into places ("id", "name", "content", "tags", "created_at", "updated_at") values ('8', 'sécurité', NULL, NULL, '2012-03-06 03:57:21.219233', '2012-03-06 03:57:21.219233'); 
insert into places ("id", "name", "content", "tags", "created_at", "updated_at") values ('10', 'technicien chimie', NULL, NULL, '2012-03-06 03:57:21.219233', '2012-03-06 03:57:21.219233'); 
insert into places ("id", "name", "content", "tags", "created_at", "updated_at") values ('11', 'technicien biologie', NULL, NULL, '2012-03-06 03:57:21.219233', '2012-03-06 03:57:21.219233'); 
insert into places ("id", "name", "content", "tags", "created_at", "updated_at") values ('12', 'service informatique', NULL, NULL, '2012-03-06 03:57:21.219233', '2012-03-06 03:57:21.219233'); 
insert into places ("id", "name", "content", "tags", "created_at", "updated_at") values ('13', 'îlot multi-récupération', 'face au B-227', NULL, '2012-03-06 03:57:21.219233', '2012-03-06 03:57:21.219233'); 
insert into places ("id", "name", "content", "tags", "created_at", "updated_at") values ('14', 'récupérateurs extérieurs', NULL, NULL, '2012-03-06 03:57:21.219233', '2012-03-06 03:57:21.219233'); 
COMMIT; 

SOLUTION :

私はSQL挿入を取得する方法を発見しました。その後、私は db:migrateを実行しました。

私のSQLiteテーブルをPostgreSQLテーブルに変換するには、SQLiteデータベースを管理するためのLinuxプログラムであるslitemanを使用しました。このユーティリティを使用して、テーブルをSQL挿入に変換することができました。私はPostgreSQLにログインし、インサートを適用しました。

Voila!

答えて

1

あなただけちょうどこのような何かを見て、あなたのdatabase.ymlのを変更、Herokuのに合わせて、postgresの上で実行するローカルのDBをしたい場合:

development: 
    adapter: postgresql 
    encoding: utf8 
    database: development 
    pool: 5 
    username: postgres 
    password: 

test: &TEST 
    adapter: postgresql 
    encoding: utf8 
    database: test 
    pool: 5 
    username: postgres 
    password: 

production: 
    adapter: postgresql 
    encoding: utf8 
    database: production 
    pool: 5 
    username: postgres 
    password: 

cucumber: 
    <<: *TEST 

これは、あなたとPostgresの役割を持っているという仮定の下にあります名前 'postgres'。あなたがMacであれば、ユーザ名はデフォルトであなたのユーザのショートネームが何であってもよいはずです。

関連する問題