文章目录
- 情景引入
- 创建过程
- 具体操作
- 创建用户和表空间
- 打开创建数据库窗口
- 填写常规信息
- 选择定义参数
- 断开所有用户连接,保存提交
情景引入
很多时候,新项目创建数据库,是从已有的数据库拷贝而来。下面分享一个PostgreSQL
非常简单便捷的以已有数据库为模板快速创建新数据库的方法。
虽然看起来我的文章写得挺长的,但是其实操作真的就是简单的几步。请耐心阅读。
创建过程
- 创建用户和表空间(根据需求,也可以用已有的用户和表空间)
- 打开创建数据库窗口
- 填写常规信息
- 选择定义参数
- 断开所有连接用户,保存提交
具体操作
本文通过克隆已有的数据库product
,创建一个新的数据库newdb
。
创建用户和表空间
首先,如果新数据库需要新的用户和表空间,那么先创建好相应的用户和表空间。这里就不描述如何创建用户和表空间了,我就用PostgreSQL默认的用户postgres
和表空间pg_default
来演示。
打开创建数据库窗口
在PostgreSQL自带的工具pgAdmin中选择相应的数据库位置,右键选择创建
→数据库
,打开创建数据库窗口
填写常规信息
如图,填写数据库名称newdb
,选择所有者postgres
,填写备注信息。
选择定义参数
选择编码为UTF-8
,模板为要拷贝的数据库product
,选择需要的表空间,其他默认即可。
断开所有用户连接,保存提交
设置好上面的信息后,点击保存按钮,即可创建新的数据库。但是一般情况下会报错:其他用户正在访问源数据库。所以需要先断开所有用户连接。
保持创建数据库窗口存在(不要关闭)。在要复制的数据库上右键选择查询工具,在打开的查询窗口中执行下面SQL语句。会弹出警告窗口,警告当前数据库连接已断开,点击取消关闭警告窗口即可。查询工具界面消息显示到服务器的连接已丢失。
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE datname='dbname'
然后点击之前的创建数据库窗口的保存按钮进行保存。稍等片刻,就会完成新数据库的创建,在左侧的数据库目录树上可以看到新创建的数据库newdb
。可以看到newdb
数据库拥有了product
数据库的所有数据。