Help us understand the problem. What is going on with this article?

ローカルのsqliteからherokuのPostgreSQLにデータをコピーする方法

More than 1 year has passed since last update.

完全に個人的な備忘です。(クソ記事すいません・・・)

sqliteからデータをcsvファイルに書き出す

sqliteのコンソールに入り

>>> sqlite3 db.sqlite
sqlite> 

モードをCSVにし、CSVにデータを書き出す。

sqlite> .headers on
sqlite> .mode csv
sqlite> .output hoge.csv
sqlite> select * from hoge_table;

これで hoge_table の内容が hoge.csv に出力される。

herokuのPostgreSQLにデータ投入

次にherokuのPostgreSQLに接続し

>>> heroku pg:psql
hogeapp::DATABASE=>

データをコピーする。

hogeapp::DATABASE=> \copy hoge_table from 'hoge.csv' CSV header;

PostgreSQL側のidがキー重複する場合、

select * from hoge_table_id_seq;

でidのlast_valueを確認する。

このlast_valueは以下で変更可能。
(例は10に変更する場合)

select setval ('hoge_table_id_seq', 10);

初期化する場合は以下。

select setval ('users_id_seq', 1, false);

以上
(数万件程度のデータなら一瞬)

kumakichiwel
レガシーに埋もれながら、趣味でポチポチやってます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした