[PSQL] 匯入練習 dvdrental 資料(Load PostgreSQL Sample Database)
TL;DR;
# STEP 1:先下載 sample database (https://www.postgresqltutorial.com/postgresql-sample-database/)
# STEP 2:下載的檔案會是 .zip 需要使用「The Unarchiver」解壓縮後才會變成 .tar 檔
$ brew install --cask the-unarchiver # 如果還沒安裝
# STEP 3:建立 dvdrental database
$ createdb -O pjchender -E utf8 dvdrental
# STEP 4:匯入 dvdrental.tar
$ pg_restore -c -d dvdrental dvdrental.tar
資料檔
- 練習用資料檔
dvdrental
可以在此下載 PostgreSQL Sample Database @ PostgreSQL Tutorial。
方法一:使用指令匯入資料
-
下載解壓縮後裡面有一個
dvdrental.tar
檔案即是我們要匯入的檔案,如果使用 MAC 預設的解壓縮程式可能會沒看到.tar
的檔案,**使用「The Unarchiver」**解壓縮即可看到此檔案。 -
若資料庫還沒建立,須先建立資料庫:
# createdb 建立 database
# createdb -O <owner> -E <encoding> <database>
$ createdb -O pjchender -E utf8 dvdrental -
使用指令將檔案匯入資料庫:
# 匯入資料
# pg_restor -d <database> <restore_file>
# -c 先清空該 database
$ pg_restore -c -d dvdrental dvdrental.tar -
若匯入的過程出現錯誤「FK CONSTRAINT store store_manager_staff_id_fkey postgres」,可以再重複執行一次該指令即可
-
若匯入的過程中出現錯誤訊息「psql: FATAL: role “postgres” does not exist」,則需要為該 database 新增使用者
postgres
後再重新pg_restore
一次:$ psql dvdrental # 進入該 database
\du # 檢視有哪些使用者
CREATE USER postgres SUPERUSER; # 建立使用者 postgres
\q # 離開 psql IRB
psql: FATAL: role “postgres” does not exist @ StackOverflow
方法二:使用 pgAdmin 匯入資料
- Install PostgreSQL macOS:裡面有提到將練習用資料檔匯入 database 的方式。