2017-08-28 130 views
0

我有一个npm的包,我已经在本地建立了几个月。为了使它正常工作,它需要访问PostgreSQL数据库。因此,它最好需要自动运行创建数据库和表的脚本。在npm安装时创建PostgreSQL数据库

这是可能的,如果可能的话,我可以在哪里制作这样的脚本?我想在npm install运行时尽可能自动化。

+0

我试图寻找有关运行创建数据库的脚本的信息,考虑到正在运行npm的用户,但没有任何可找到的信息。这就是我在这里问的原因。 –

回答

0

nmp调用psql -qAtX -v ON_ERRORS_STOP=1 -f my_script.sql,如果返回非零值,则返回错误。它应该就像在安装脚本中运行任何其他命令一样。

你可以有psql

CREATE DATABASE mydb; 
\c mydb 

重新连接连接到数据库postgres开始,然后到新的数据库。但个人而言,我会有一个psql调用创建数据库,然后再连接到新的数据库。它简化了错误处理。

您可以设置Postgres的情况下通过环境变量PGUSERPGHOSTPGDATABASE等(见psql手册)或通过传递给命令的参数来连接。

psql将默认为当前unix/windows用户帐户的名称(如果没有指定)。

+0

非常感谢。我之前没有发现这方面的信息。 –

+0

刚刚发布关于此:https://mail.google.com/mail/u/1/?ui=2&ik=cee2ba9a0e&jsver=-8Gn2zfonJc.en_GB.&view=om&th=15e2746f665bc23b –

+0

请注意,我假设你有一个前 - 连接到现有的postgres实例,并且只需要填充它。如果你需要创建一个postgres实例,你还需要运行'initdb'。请注意,如果您的应用安装程序创建自己的postgres实例,请不要使用默认的postgres端口**。 –