【发布时间】:2019-03-15 06:25:45
【问题描述】:
我需要使用 PostgreSQL 创建一个新数据库并且需要 通过创建数据库和 表。
我正在考虑创建一个 init.sql 文件并使用该文件
初始化 docker 镜像时与Docker 一起使用。
我需要一个处理initialising(根据模式版本有条件地创建模式和表)数据库的示例。
我有以下伪示例,并希望看到一个真实的 Postgres 示例。
伪例子:
1) 如果数据库不存在则创建数据库
2) 设置或增加数据库设计版本
// 创建版本 0 表
3) 如果表不存在则创建表
// 创建版本 1 表
4) 创建未来版本表并应用表更改
【问题讨论】:
-
在初始化创建数据库后,您可能会受益于使用数据库迁移工具,例如 Flyway 或 Liquibase。这些工具运行脚本来定义和填充您的模式、表和数据。这些工具还可以清除数据库的内容,以便在测试中重复使用,因此您无需重新创建新的空数据库,
-
我赞同 Basil 的建议,使用模式迁移工具。我是 Liquibase 的粉丝,但 Flyway 或例如Sqitch 或者一样好
标签: postgresql