我的包结构看起来像:
在/db.changelog/db.changelod-master.xml中,我包括/db.changelog/v1/db.changelog-1.0.xml,其中还包括/db.changelog/v1/changeset包中的所有changelog。
在我的应用程序中,我有两个配置文件:dev和prod,我需要根据LiquiBase的“最佳实践”来划分包的结构。一些changelogs可以在prod和dev环境中。
解决方案1:
您需要在yaml文件中定义'liquiBase.contexts'属性。类似下面的东西。
spring:
profiles: dev
datasource:
url: jdbc:postgresql://localhost:5432/dev
username: postgres
password: password
driver-class-name: org.postgresql.Driver
liquibase:
contexts: dev
添加此内容后,以下更改集将仅在本地配置文件为'dev'时执行(即spring-boot:run-dspring.profiles.active=dev)
<changeSet id="20161016_my_first_change2" author="krudland" context="dev">
<sql>
insert into customer (firstname, lastname) values ('Franklin','Ike');
</sql>
<rollback>
delete from customer where firstname = 'Franklin' and lastname = 'Ike';
</rollback>
</changeSet>
解决方案2:
如果您不想使用Liquibase.Context,可以使用maven来过滤资源:关键是将maven filter元素与resource元素结合使用,如Liquibase文档中所解释的那样。
mvn resources:resources liquibase:update -Plocal
|-- pom.xml
`-- src
`-- main
|-- resources
| `-- liquibase.properties
| |-- changelog
| `-- db-changelog-master.xml
| `-- db-changelog-1.0.xml
|-- filters
|-- local
| `-- db.properties
|-- dev
| `-- db.properties
db.properties文件如下所示:
database.driver = oracle.jdbc.driver.OracleDriver
database.url = jdbc:oracle:thin:@<host_name>:<port_number>/instance
database.username = user
database.password = password123
database.changelogfile = db.changelog-master.xml
liquiBase.properties文件如下所示:
changeLogFile: changelog/${database.changelogfile}
driver: ${database.driver}
url: ${database.url}
username: ${database.username}
password: ${database.password}
verbose: true
POM文件如下所示:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<propertyFile>target/classes/liquibase.properties</propertyFile>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<profiles>
<profile>
<id>local</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<filters>
<filter>src/main/filters/local/db.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
</profile>
<profile>
<id>dev</id>
<build>
<filters>
<filter>src/main/filters/dev/db.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
</profile>
</profiles>
我正在考虑使用Firebase作为MBaaS,但是我找不到任何可靠的解决方案来解决以下问题: 我想设置两个独立的Firebase环境,一个用于开发,一个用于生产,但我不想在开发和生产环境之间手动复制特性(例如远程配置设置、通知规则等)。 有什么建议吗?有没有比拥有两个独立的环境更好的方法? 在您发布关于如何建立单独的Firebase帐户的问题的另一个答案之前:这不是问题,请再读一遍。问题是:如何在
您如何为开发和生产(集群)构建图像: 我正试图为两者都提供一个Dockerfile,以保持“Dockerfile实现在一个地方”,如继承: 然后使用docker compose。开发yml 就像docker compose一样。开发yml: 所以首先,命名不起作用。 额外的问题:如何为生产构建一个映像-您是否只需在一个容器中编译(docker运行),然后将二进制文件复制到一个新容器中?
开发环境 下面仅仅是我的项目开发环境, 没有必要追求完全一致... Mac OS X 10.10.1 #非必要 Python3.4.1 Django1.7.1 Bootstrap3.3.0 or Pure(临时决定使用的, @游逸 推荐) #非必要 Sublime Text 3 #非必要 virtualenv 1.11.6 虚拟环境配置 使用v
更新时间:2019-08-31 11:22:33 服务分为生产环境与开发环境,未发布的服务认为是在开发环境,发布后的服务为生产环境的服务。生产环境的服务才可以在web工作台,或代码工程内调用。生产环境的服务不可再进行修改,需要在开发环境中修改部署发布服务后,才可生效。 服务运维监控功能是为生产环境的服务提供的,您可以在此查看生产环境服务的调用量及运行日志。
我有一个JavaMaven项目。我正在使用liquibase更新数据库。 在本地,要更新我的数据库,我只需在命令行中运行: 在正式生产环境中,我没有安装Maven。 我需要实现的是通过控制台,执行一个命令,在特定的类路径中运行liquibase脚本。 有什么想法吗? 编辑: 好啊我正试图遵循这种方法。我将以下项目放入文件夹: > 包含我的应用程序和liquibase变更集的war liquibas
问题内容: 我正在尝试设置grunt.js文件,以便它仅在生产服务器上运行时才运行任务- 在本地开发服务器上运行时,我不需要每次更改都不需要我的代码,因为这是不必要的。 关于grunt.js如何区分开发/生产环境的任何想法? 问题答案: 注册生产任务: 在开发服务器上运行,在生产上运行。 您还可以为每个任务设置更精细的目标: