以编程方式创建postgreSQL数据库

时间:2013-05-11 21:40:45

标签: postgresql

我正在Visual Studio 2012中构建一个应用程序,我希望每次运行它时都要检查某个postgres数据库是否存在,如果不存在则创建一个,使用指定的表等。

我在没有运气的情况下环顾谷歌。我希望以编程方式从我的应用程序中创建数据库,但是如果有人知道我是否以及如何使用安装程序向导来执行此操作,这也很好。该应用程序只能在Windows上运行,但在所有机器上运行,没有例外。

1 个答案:

答案 0 :(得分:6)

无论使用哪种工具和编程语言,您都希望使用的方法是相同的:

  1. 在您的程序中,在启动期间连接到PostgreSQL安装中始终可用的template1postgres数据库并发出SELECT 1 FROM pg_database WHERE datname = ?并作为第一个参数传递所需的数据库名称。

  2. 检查返回的结果集。如果返回一行然后存在数据库,则表示您已完成,无需进一步操作。如果没有返回行,则数据库不存在,您需要创建它,因此:

  3. 根据手册向CREATE DATABASE mydatabasename;发送包含OWNERENCODING等任何所需选项的psql,以便自行创建数据库。新数据库将为空。

  4. 通过连接到应用程序中的新数据库并直接从应用程序发送一系列SQL命令,或者通过在shell上调用sql命令来读取{{1}来填充数据库脚本文件并将其发送到数据库。我通常更喜欢直接在我的应用程序中运行SQL。

  5. 如果你想在安装期间创建数据库,主要取决于你和安装程序,但它通常就像PostgreSQL启动后的CREATE DATABASE调用一样简单,然后提供psql srcipt。