全量遷移
- 備份數據
$ 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
