云 运行 和数据库迁移:创建新修订时的初始启动超时(用于数据库迁移)
Cloud Run and DB migrations: Initial boot timeout when creating a new revision (to use for db migrations)
我正在寻找迁移云 运行 并且我想知道创建新修订版时的启动时间。基本上,当云 运行 修订启动时,我想 运行 数据库迁移,众所周知,这可能需要一段时间。
我知道云 运行 等到容器准备好开始服务流量,但它要等多久才能准备好?
我已经搜索了文档,但没有真正找到任何东西。
数据库托管在 CloudSQL 中
此致,
尼克拉斯
您无法开箱即用,需要一些工程。实际上,您的容器是不可变的,这意味着 运行 它执行 1 次或 1000 次,执行相同的执行。所以,如果你在启动时设置一个迁移脚本,那么每次都会播放这个脚本。
您可以想象将当前模式版本存储在您的数据库中。当 Cloud 运行 实例从您的容器启动时,启动会检查架构版本,如果不相等,则应用迁移脚本并更新架构版本。
但是在每次启动实例时,都会执行到数据库的连接+版本检查。
另一个解决方案是定义启动迁移脚本的路径/migration
。在部署后立即调用它以应用迁移。这次没有冷启动影响,但是迁移后仍然可以访问的路径。
或者您可以混合使用这两种方法,检查架构版本的数据库 + 应用迁移的路径。
我正在寻找迁移云 运行 并且我想知道创建新修订版时的启动时间。基本上,当云 运行 修订启动时,我想 运行 数据库迁移,众所周知,这可能需要一段时间。
我知道云 运行 等到容器准备好开始服务流量,但它要等多久才能准备好?
我已经搜索了文档,但没有真正找到任何东西。
数据库托管在 CloudSQL 中
此致, 尼克拉斯
您无法开箱即用,需要一些工程。实际上,您的容器是不可变的,这意味着 运行 它执行 1 次或 1000 次,执行相同的执行。所以,如果你在启动时设置一个迁移脚本,那么每次都会播放这个脚本。
您可以想象将当前模式版本存储在您的数据库中。当 Cloud 运行 实例从您的容器启动时,启动会检查架构版本,如果不相等,则应用迁移脚本并更新架构版本。
但是在每次启动实例时,都会执行到数据库的连接+版本检查。
另一个解决方案是定义启动迁移脚本的路径/migration
。在部署后立即调用它以应用迁移。这次没有冷启动影响,但是迁移后仍然可以访问的路径。
或者您可以混合使用这两种方法,检查架构版本的数据库 + 应用迁移的路径。