问题标签 [playframework-evolutions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
playframework - 即使关闭,Play Framework 2.4 应用程序也始终创建 1.sql 演变
我正在将 Play Framework 应用程序从版本 2.3.X 转换为 2.4.X。
除了一件事,一切都在工作。每次启动服务器时都会创建一个文件。
该文件是/conf/evolutions/default/1.sql
奇怪的是我不使用进化。我仍然保留该evolutions
文件夹以跟踪我的 sql 转换文件(我自己编码)。
在我的 application.conf 文件中,这就是我与进化相关的内容。我知道他们都做同样的事情,但即使有这两条线,问题仍然存在。
有没有什么地方可以防止这种情况发生?我在 2.3.X 版本中没有这个问题。
谢谢
playframework-2.5 - 如何使 Playframework Evolutions 日志记录更详细?
我一直在试图看看他们发生了什么,因为我正面临一个问题。当我单击“应用此脚本”按钮时,要求我应用脚本的页面再次出现,并且卡在该循环中。它创建“play_evolutions”表,但不运行任何脚本。
控制台中的日志没有给我任何相关信息。我已经手动运行了脚本,没关系...所以我不知道真正的问题是什么,因此我需要更多的日志记录。
scala - 未找到表“play_evolutions”
我有一个这样配置的基本开发数据库:
我添加了一个脚本来从数据库中创建表conf/evolutions/default/1.sql
当启动应用程序sbt run
并转到任何页面时,Play 要求我应用脚本1.sql
。按下按钮后,我收到以下错误:
游戏框架不应该已经创建了这个吗?
版本:
playframework - Play-slick:如何记录进化?
我想通过记录诸如“应用进化文件 3.sql”之类的内容,甚至整个 SQL 代码来确保我所有的进化文件都正确运行(由我的 CI 代理,它似乎无法读取多个文件)运行以应用演变。
如何使该信息出现在控制台日志中?
我正在使用 play-slick(记录器可能不同?)。我尝试将此添加到该# --- !UPS
部分
以及在“application.conf”中:
以及“logback.xml”中的不同类型的东西,但没有成功(我可以打印我所有的 DAO 查询,但不能打印演变)。
这是我的“logback.xml”的相关部分。Slick 仅记录我的 DAO 的查询。三个“jdbcdslog”什么都不做,而 Hikari 一个只记录连接。我将“play.api.db.evolutions”记录器设置DEBUG
为这个答案,但它也没有效果。
playframework - 有没有办法在 Play 中选择进化文件的名称?
我正在使用 Play 的进化!(2.5)并且由于我的项目正在增长,我以一个 23.sql 文件结束(在我的 evolutions conf 文件夹中的 22 个 n.sql 文件之后)。
检索信息开始变得困难。
有没有办法以不同的方式命名这些文件,例如 addEventTable.sql 而不是 24.sql?
scala - 播放框架演变未运行
我正在尝试使用 slick 运行带有 postgresql 数据库的 Play framework 2.5 应用程序。但是在我将 1.sql 添加到 conf/evolutions/default 之后,没有检测到进化。我究竟做错了什么?
应用程序.conf
构建.sbt
1.sql
playframework - 从 Play 2.4.6 迁移到 Play 2.5.9 Evolutions 问题
我正在尝试将 Play 2.4.6 迁移到 Play 2.5.9。我正在使用这个种子模板 https://github.com/mariussoutier/play-angular-require-seed
我面临着 Evolutions 的问题。当我启动服务器时。它试图应用所有 SQL 文件 downs 然后 Ups
Play 2.5.9 似乎出了什么问题。早些时候我曾尝试迁移到 2.5.14 并且有大量的内存泄漏和线程正在创建。播放 Scala Slick 3.0 连接池问题 | Play 2.4 与 Play 2.5 的问题
我的依赖 build.sbt 文件如下所示
scala - Slick evolutions with transactions
I have a question about using Play + Slick, and the slick evolutions.
Someone told me to always wrap the evolutions statements in a transaction (in order not to leave the DB with half evolution applied). In the case we were seeing, with Postgres it would mean to start the Up/Down with a BEGIN;
and end with a COMMIT;
1st I find it hard to remember in every evolution to put those keywords.
2nd I find it hard to believe that play/slick doesn't already have an option/configuration to do that.
So, is there any way to make play/slick to wrap every evolution in a transaction in order not to leave an evolution half applied? (I saw the autocommit
config but not sure if that's what I want: https://www.playframework.com/documentation/2.5.x/Evolutions#Evolutions-configuration)
ps: using Play 2.4.x with slick 2.1.0, if relevant (but would also like to know about other versions)
scala - 在 play-framework 中运行测试时如何应用 play-evolutions?
在使用游戏框架中运行测试时,我遇到了进化问题
- scala 的 playframework v2.6.6
- 玩滑 v3.0.2
- play-slick-evolutions v3.0.2
测试看起来像这样:
数据库配置如下所示:
假设有一个创建表的进化脚本,foos
并且该脚本在开发模式下工作正常。
运行测试时会抛出以下错误:
play.api.http.HttpErrorHandlerExceptions$$anon$1: Execution exception[[JdbcSQLException: Table "foos" not found;
foos
找不到该表,因此我假设尚未应用数据库演变。
然后我将数据库配置更改为在开发模式下使用的 postgresql。
使用此配置,测试工作正常,数据存储在数据库中,因此数据库演变运行良好。
现在的问题是,数据库在测试后没有清理。我想用干净的数据库运行每个测试套件。
总结一下。不应用 H2Db 进化,应用 postgresql 进化但未清理。
即使这明确定义在application.test.conf
我也试过
没有效果。
然后我尝试通过以下方式手动执行此操作:
然后将测试更改为:
对于H2数据库配置无效,同样报foos
找不到table的错误。对于 postgresql 数据库配置,会抛出进化异常
play.api.db.evolutions.InconsistentDatabase: Database 'default' is in an inconsistent state![An evolution has not been applied properly. Please check the problem and resolve it manually before marking it as resolved.]
我希望在每个测试套件之前运行进化上升,并在每个测试套件之后运行进化下降。如何做到这一点?
java - Java Play 部署错误
当我尝试运行通过运行“activator dist”命令创建的 bat 文件时,出现以下异常。
但是当我在我的机器上执行时,这运行良好。我在这里做错了什么?我尝试过更改端口,但仍然没有运气。下面是我用来运行 bat 文件的命令。
任何帮助将非常感激。