使用flyway迁移到Google Cloud SQL,应该复制哪些jar文件?

Posted

技术标签:

【中文标题】使用flyway迁移到Google Cloud SQL,应该复制哪些jar文件?【英文标题】:Migrating to Google Cloud SQL using flyway, what jar files should be copied? 【发布时间】:2012-05-01 22:13:55 【问题描述】:

我正在尝试使用 flyway 命令行工具迁移我的数据库 (mysql) 转储文件 Google Cloud SQL。我已将 google_sql.jar 复制到 flyway-commandline-1.6/jars/ 并在 flyway-commandline-1.6/conf/flyway.properties 中设置以下属性:

flyway.driver=com.google.appengine.api.rdbms.AppEngineDriver
flyway.url=jdbc:google:rdbms://myinstancename/devdb
flyway.user=myusername
flyway.password=mypassword

但是,这不起作用并产生以下错误:

FlywayException: Error instantiating database driver: com.google.appengine.api.rdbms.AppEngineDriver
Occured in com.googlecode.flyway.core.Flyway in method configure, line number 789
Caused by java.lang.ClassNotFoundException: com.google.appengine.api.rdbms.AppEngineDriver
Occured in java.net.URLClassLoader$1 in method run, line number 217

有人可以帮我确定 flyway 使用 Google Cloud SQL 所需的 jar 文件吗?

【问题讨论】:

【参考方案1】:

这在 AppEngine 方面很奇怪且文档记录不充分,但您还必须将 MySQL Jdbc 驱动程序复制到 APPENGINE_HOME/lib/impl

见:Java Google App Engine and Google Cloud SQL running on local dev server

【讨论】:

这当然是针对本地实例的。对于远程实例,您可能应该关注developers.google.com/cloud-sql/docs/admin_tools 来授权您的机器。 抱歉这个蹩脚的问题。我需要有 appengine sdk 才能运行 flyway 命令行吗? 仅当您希望将其与 Google Cloud SQL 一起使用时,否则不会。这是 AppEngine/Cloud SQL 限制,而不是 Flyway 限制。

以上是关于使用flyway迁移到Google Cloud SQL,应该复制哪些jar文件?的主要内容,如果未能解决你的问题,请参考以下文章

从 google appengine 数据存储迁移到 google cloud bigtable 的最佳方法是啥?

重试flyway失败的迁移

Flyway - Flyway 架构迁移失败

Flyway - 迁移到特定版本

使用flyway在不同db之间迁移

使用个人用户帐户执行 flyway 迁移