簡體   English   中英

如何從Heroku導入大型數據庫到本地mysql或sqlite3?

[英]How to import a big database from Heroku to local mysql or sqlite3?

根據標題,我需要導入,但是PG備份為我提供了嚴格的Postgres SQL,該SQL無法與MySQL一起使用,並且還提供了我認為是UTF-16的非指定編碼。 使用db:pull會花費一些時間和錯誤,然后才能完成。 我將不勝感激任何建議。 謝謝。

在本地設置PostgreSQL,使用PG備份將數據從Heroku復制到本地計算機,然后使用pg_restore導入到新的本地PostgreSQL。 然后,您可以在本地將它從PostgreSQL復制到MySQL或SQLite,而不必擔心超時。 或者,由於在那之后安裝了功能正常的PostgreSQL,因此只需在PostgreSQL之上開始開發,以使您的開發堆棧更好地與您的部署堆棧匹配; 在同一個數據庫上進行開發和部署是一個好主意。

您可能會從Heroku獲得二進制轉儲(即pg_dump -Fc ),這將解釋為什么轉儲看起來像某種UTF-16廢話。

您可以使用pgbackups 插件導出數據庫轉儲

$ heroku addons:add pgbackups # To install the addon
$ curl -o latest.dump `heroku pgbackups:url` # To download a dump

Heroku上有關於如何執行此操作的說明: https : //devcenter.heroku.com/articles/heroku-postgres-import-export#restore-to-local-database ,其歸結為:

$ pg_restore --verbose --clean --no-acl --no-owner -h localhost -U myuser -d mydb latest.dump

其中myuser是當前用戶,而mydb是當前數據庫。

如果您使用Postgres.app ,則在本地復制生產數據庫非常簡單。 除非另行配置,否則可以不使用-U myuser ,並通過運行$ psql -h localhost然后CREATE DATABASE your_database_name; (來自Postgres.app文檔 。然后運行上面的命令,您已設置好。

在您的終端中遵循以下4個簡單步驟
Heroku開發中心 ):

  1. 安裝Heroku Backup工具:

     $ heroku addons:add pgbackups 
  2. 開始使用它:

     $ heroku pgbackups:capture 
  3. 使用curl將Heroku上的遠程數據庫下載到本地計算機上:

     $ curl -o latest.dump 'heroku pg:backups public-url' 
  4. 加載*:

     $ pg_restore --verbose --clean --no-acl --no-owner -h localhost -U YOUR_USERNAME -d DATABASE_NAME latest.dump 
    • 獲取用戶名,然后從config / database.yml文件中選擇所需的數據庫。
    • DATABASE_NAME可以是您的開發/測試/生產數據庫(例如mydb_development)

而已!

更新:已更新到新界面

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM