- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
使用 play framework 2.1,我试图找到拥有两个不同数据库配置的最佳方式:
虽然做其中一个很容易,但当我尝试同时做这两个时,我遇到了以下问题:
我的问题:任何人都可以推荐一种好的方法来同时执行这两项操作(一直使用 mysql 并且仅在测试中使用 H2)而不会使应用程序的运行过于复杂吗? Google 没有帮助我。
感谢您的帮助。
最佳答案
您可能会发现一些有用的技巧。
首先,MySQL的/*! */
符号允许您添加 MySQL 将遵守的代码,但其他数据库将忽略,例如:
create table Users (
id bigint not null auto_increment,
name varchar(40)
) /*! engine=InnoDB */
它不是 Elixir ,但可以让您掩盖 MySQL 和 H2 语法之间的一些差异。这是一个 MySQL 主义,所以它对其他数据库没有帮助,但由于大多数其他数据库不像 MySQL 那样古怪,你可能不需要它 - 我们将我们的数据库从 MySQL 迁移到 PostgreSQL,它不需要支持 /*! */
符号,但 PostgreSQL 与 H2 非常相似,我们不需要它。
如果你想为开发和生产使用不同的配置,你可能最好为生产提供额外的配置。这样做的原因是您可能会使用 play run
启动您的开发服务器,并使用 play stage 启动您的生产服务器;目标/开始
。 target/start
可以接受一个-Dconfig.resource
参数。例如,为 prod 创建一个额外的配置文件 prod.conf
,如下所示:
include "application.conf"
# Extra config for prod - this will override the dev values in application.conf
db.default.driver=...
db.default.url=...
...
并创建一个如下所示的 start_prod
脚本:
#!/bin/sh
# Optional - you might want to do this as part of the build/deploy process instead
#play stage
target/start -Dconfig.resource=prod.conf
理论上,您可以反过来做,让 application.conf
包含 prod conf,并创建一个 dev.conf
文件,但是您无论如何,您可能都需要一个脚本来启动产品(您可能最终需要额外的 JVM/内存/GC 参数,或者将其添加到 rc.d,或其他任何内容)。
关于mysql - 在 dev/prod 中使用 Mysql,在测试中使用 H2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15885814/
在 Angular 2 中,我相信你必须使用: enableProductionMode() 我在我的 environment.prod.ts 文件中调用它。 然后我可以调用: ng b -prod
我正在使用 docker,所以在生产模式下,我使用链接容器,其 URL 为“http://api:3000/” 而不是“http://localhost:3000/”在开发模式下。 如果“ng bui
每当我进行更改时,我都会运行此命令来构建我的项目: ng build --prod --aot=false --build-optimizer=false 这一直很好,直到我今天犯了一个错误。我偶然在
我们有两个分支:1. HEAD - 最新版本(AKA Trunc)2. PROD——发布版本 当您修复已发布版本中的错误时,您会执行以下哪些操作: 在 PROD 中修复它,然后合并到 HEAD 中 在
我必须运行抓取任务来为我的 App Engine (Java) 应用程序收集数据。 我不确定哪个最好 - 在开发模式下抓取数据并将其上传到产品或在应用程序在生产环境中运行时抓取它。 有区别吗? 将大量
我正在为一个项目使用最新的 angular-cli (beta-18)。我知道 cli 仍处于非常早期的阶段,但我很困惑为什么我的最终包大小在没有 AoT 的情况下实际上更小。 当我运行 ng bui
我正在阅读 Numpy 文档,似乎函数 np.prod(...)、np.product(...) 和ndarray 方法 a.prod(...) 都是等价的。 在样式/可读性和性能方面是否有首选版本可
ng build --prod 和 ng build --env=prod 之间有什么区别? 我的理解是 ng build --env=prod 仅在 environment.prod.ts 中设置环
我的 Angular 项目是 @Angular4.3.3 ng build -prod 构建需要 77 秒 ng build --prod --build-optimizer=true 构建需要 19
如果这是重复的,请将其标记为重复。另外,我不确定这是否是一个基于意见的问题。我的谷歌搜索没有返回任何与我的困境相关的信息,我也不确定我应该谷歌搜索什么。 ( 1 , 2 ) 我的问题是关于如何防止在
当我尝试使用 --prod 选项运行 ng build 时,它会编译成一个 main.js 文件,并且我在控制台中没有收到任何错误。 但是当我在浏览器中运行应用程序时,它仍然会查找单独的 js 文件。
当我使用命令 npm run build -- --prod 时,我收到以下错误消息: 属性“PropertyName1”是私有(private)属性,只能在“AppComponent”类中访问 “A
Angular 生产构建不会在我的项目中生成唯一的哈希值。 以下是构建日志截图 无法在新的 angular cli 项目中重现此问题,似乎我的项目中存在一些问题。 我正在使用 Angular - 6.
我第一次尝试在生产环境中运行我的项目,但没有按预期进行。 按照此处的说明操作后 https://symfony.com/doc/current/deployment.html我的 localhost/
我想在开发构建期间排除一个模块,但对于生产构建添加它。 在 settings.gradle我有: if (!this.hasProperty("-cart-view")) { println("
我的 Symfony 3 应用程序在我的本地网络服务器上完美运行。由于它安装在远程 Web 服务器上,因此会生成空白页面,甚至路由也不起作用。编辑 web/app.php $kernel = new
如何仅为 PROD 环境设置自定义错误页面?我想显示用于生产的自定义环境,但显示普通环境,但开发环境除外。 有什么想法吗? 最佳答案 我遇到了同样的问题,解决方案非常简单。您必须修改参数twig.ex
我的 Symfony 3 应用程序在我的本地网络服务器上完美运行。由于它安装在远程 Web 服务器上,因此会生成空白页面,甚至路由也不起作用。编辑 web/app.php $kernel = new
是 fullcalendar 用于插入日历并发挥其魔力的 html 标签。这是一个很棒的工具,但是发生了一些奇怪的事情。 我的日历是根据数据库中的事件创建的,所有这些东西都运行良好。问题是这样的..
我有 4 个 yaml 文件 部署.yaml 服务.yaml 入口.yaml issuer.yaml 我想将letsencrypt-prod 用于我的认证服务。但它不起作用。 当我用来确定入口正在工作
我是一名优秀的程序员,十分优秀!