全量遷移 備份數據 正式遷移 首先要修改備份文件 .sql的owner,防止許可權出現錯誤。 【註意點】該遷移操作會覆蓋原來的資料庫,所以最好創建一個新庫。 列出所有表名和資料庫名 PostgreSQL 中 有時候想刪除資料庫(drop database swiftliveqaapi;),發現提示“E ...
全量遷移
- 備份數據
$ pg_dump -h 172.19.235.145 -U <username> -d <database> > 20180704_dbpe.sql
- 正式遷移
首先要修改備份文件*.sql的owner,防止許可權出現錯誤。
$ psql -h <ip> -U <username> -d <database> -f 20180704_dbpe.sql
【註意點】該遷移操作會覆蓋原來的資料庫,所以最好創建一個新庫。
列出所有表名和資料庫名
select tablename from pg_tables where schemaname ='public';
PostgreSQL 中 有時候想刪除資料庫(drop database swiftliveqaapi;),發現提示“ERROR: database "xxxxxx" is being accessed by other users DETAIL: There are 30 other sessions using the database.”
用psql 登錄進入, 執行語句:
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='資料庫名' AND pid<>pg_backend_pid();
然後就可以刪除資料庫了
修改表的序列為id最大值
SELECT setval('表名_id_seq', (SELECT MAX(id) FROM 表名));
查詢表結構
SELECT
COLUMN_NAME AS 列名,
DATA_TYPE AS 欄位類型,
CHARACTER_MAXIMUM_LENGTH AS 長度,
IS_NULLABLE AS 是否為空,
COLUMN_DEFAULT AS 預設值
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
table_schema = 'public'
AND TABLE_NAME = '表名';
PG 資料庫狀態,啟動,停止
$ pg_ctlcluster 9.5 main status
$ pg_ctlcluster 9.5 main start
$ pg_ctlcluster 9.5 main stop