Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DB インポート #8

Open
egurinko opened this issue Oct 23, 2021 · 0 comments
Open

DB インポート #8

egurinko opened this issue Oct 23, 2021 · 0 comments

Comments

@egurinko
Copy link
Owner

egurinko commented Oct 23, 2021

heroku mysql

heroku の db を export

# password 必須
mysqldump -u <username> -p -h <hostname> -r backup.sql --single-transaction <db name> --no-tablespaces

heroku の db に import

mysql --host=<hostname> --user=<username> -p --reconnect <db name> < backup.sql
  • stg のデータを少なくする(stg はherokuデータ容量制限がある)
const current = await db.hospital.findMany();
const halfHospitalIds = current.filter((h,i)=> i%2===0).map(h=>h.id)
await db.hospital.deleteMany({where:{id: {in:halfHospitalIds}}});

ローカルに import

mysql -u root ham_media_app_development < backup.sql

mysql => psql 移行

pgloader install

$ brew install pgloader

heroku mysql からローカルの psql にデータコピー

  • pgloader の command を command.load として作成
load database
    from <heroku mysql>
    into postgresql://<username>@localhost/ham_media_app_development
    alter schema 'ham_media_app_development' rename to 'public';
  • 実行
$ pgloader ./command.load

ローカル psql から dump

pg_dump postgresql://<username>:<pw>@localhost/postgres > postgres.sql

dump したものをリモートにコピー

  • 2 回実行すると 2 回 insert されるので注意
psql -h <host> --password -p <port> -U postgres -f ./postgres.sql
@egurinko egurinko changed the title MySQL 周りのインポート DB インポート Mar 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant