在 Cloud Foundry 中为 Postgres 自动创建 Table
Automated Table creation for Postgres in Cloud Foundry
我们有一个绑定到 Postgresql 服务的 cloud-foundry 应用程序。现在我们必须使用 pgAdmin 手动连接到 Posgresql 数据库,然后手动 运行 查询来创建我们的 tables。
尝试的解决方案:
做一个我要安装的云铸造厂 run-task
1)安装psql并连接远程数据库
2) 创建 tables
我 运行 遇到的问题是 cf 运行-task 安装包的权限有限。
为 cloud-foundry 应用程序自动创建数据库 table 的最佳方法是什么?
您的应用程序将 运行 作为非 root 用户,因此它无法安装包,至少无法以传统方式安装。如果你想安装一个包,你可以使用 Apt Buildpack 来安装它。这将安装包,但安装到不需要 root 访问权限的位置。然后它会调整您的环境变量,以便可以正确找到二进制文件和库。
另请记住,任务与应用程序相关联(它们都使用相同的 Droplet),因此要完成这项工作,您需要执行以下两项操作之一:
1.) 使用 multi-buildpacks 运行 Apt buildpack 加上你的标准 buildpack。这将生成一个包含所需包和应用程序位的 droplet。然后你可以启动你的应用程序并启动任务来设置数据库。
2.) 使用两个单独的应用程序。一个用于您的实际应用程序,一个用于为数据库播种的代码。
但两者都应该有效。两者都是为您的数据库播种的有效方法。另一种选择,也就是我通常所做的,是使用某种工具来做到这一点。一些框架,如 Rails,内置了这个。如果你的框架没有,你可以带上你自己的工具,比如 Flyway。这些工具通常还有助于改进数据库模式,这也很有用。
我们有一个绑定到 Postgresql 服务的 cloud-foundry 应用程序。现在我们必须使用 pgAdmin 手动连接到 Posgresql 数据库,然后手动 运行 查询来创建我们的 tables。
尝试的解决方案: 做一个我要安装的云铸造厂 run-task 1)安装psql并连接远程数据库 2) 创建 tables
我 运行 遇到的问题是 cf 运行-task 安装包的权限有限。
为 cloud-foundry 应用程序自动创建数据库 table 的最佳方法是什么?
您的应用程序将 运行 作为非 root 用户,因此它无法安装包,至少无法以传统方式安装。如果你想安装一个包,你可以使用 Apt Buildpack 来安装它。这将安装包,但安装到不需要 root 访问权限的位置。然后它会调整您的环境变量,以便可以正确找到二进制文件和库。
另请记住,任务与应用程序相关联(它们都使用相同的 Droplet),因此要完成这项工作,您需要执行以下两项操作之一:
1.) 使用 multi-buildpacks 运行 Apt buildpack 加上你的标准 buildpack。这将生成一个包含所需包和应用程序位的 droplet。然后你可以启动你的应用程序并启动任务来设置数据库。
2.) 使用两个单独的应用程序。一个用于您的实际应用程序,一个用于为数据库播种的代码。
但两者都应该有效。两者都是为您的数据库播种的有效方法。另一种选择,也就是我通常所做的,是使用某种工具来做到这一点。一些框架,如 Rails,内置了这个。如果你的框架没有,你可以带上你自己的工具,比如 Flyway。这些工具通常还有助于改进数据库模式,这也很有用。