在 Cloud Foundry 中创建数据库模式的常见做法是什么?
What is the common practice to create db schema in Cloud Foundry?
一段时间以来,有人要求我提供初始化关系数据库模式和预填充数据的最佳实践。
有几种方法可以实现:
- 安装 cf-ex-phpmyadmin 并通过它导入数据和模式
- 使用 VMC cli 工具从该服务创建隧道 link
- 如果使用ruby或python,请使用manifest.yml中的db迁移命令。但是,它将在每个实例上以及每次实例重新暂存时执行。
哪个最常用最有效?
VMC 非常旧,不再受支持。如果它甚至适用于在过去几年内部署的 Cloud Foundry 安装,我会感到惊讶。您应该使用新的 cf
CLI.
如果你要将命令放在你的清单中,你可以避免在每个实例上都使用它 运行 如果你有一个条件保护,如果 $CF_INSTANCE_INDEX
只会 运行 迁移] 等于 0,但是在您的启动命令中 运行 迁移并不总是一个好主意,因为您的启动命令有一个硬超时,并且您不希望迁移在长时间迁移时被中断。
我听到 [1] 的一个好建议是,迁移应该作为部署过程的一个单独部分来处理,通过 cf ssh
或 运行 在本地进行迁移,指向URL 和您的数据库服务实例的凭据。
[1] 此建议归功于 Travis Grathwell。
一段时间以来,有人要求我提供初始化关系数据库模式和预填充数据的最佳实践。
有几种方法可以实现:
- 安装 cf-ex-phpmyadmin 并通过它导入数据和模式
- 使用 VMC cli 工具从该服务创建隧道 link
- 如果使用ruby或python,请使用manifest.yml中的db迁移命令。但是,它将在每个实例上以及每次实例重新暂存时执行。
哪个最常用最有效?
VMC 非常旧,不再受支持。如果它甚至适用于在过去几年内部署的 Cloud Foundry 安装,我会感到惊讶。您应该使用新的 cf
CLI.
如果你要将命令放在你的清单中,你可以避免在每个实例上都使用它 运行 如果你有一个条件保护,如果 $CF_INSTANCE_INDEX
只会 运行 迁移] 等于 0,但是在您的启动命令中 运行 迁移并不总是一个好主意,因为您的启动命令有一个硬超时,并且您不希望迁移在长时间迁移时被中断。
我听到 [1] 的一个好建议是,迁移应该作为部署过程的一个单独部分来处理,通过 cf ssh
或 运行 在本地进行迁移,指向URL 和您的数据库服务实例的凭据。
[1] 此建议归功于 Travis Grathwell。