我有一个现有的 Spring Boot 项目和一个相同的数据库。现在,我想添加 liquibase 来处理进一步的数据库迁移。执行此操作的正确步骤是什么?
我已经按照这篇文章添加了 liquibase 并生成了变更日志。我发现的大多数文章都在谈论从头开始在项目中使用 liquibase 或者对实现不太详细。到目前为止,我已经完成了以下工作:
在 pom.xml 中添加了依赖项和插件
<dependencies>
//..other dependencies
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
</dependency>
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>3.6.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>3.6.2</version>
<configuration>
<propertyFile>src/main/resources/liquibase.properties</propertyFile>
</configuration>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
在 src/main/resources 下添加 liquibase.properties 文件
url=jdbc:mysql://localhost:3306/demodb
username=root
password=root
driver=com.mysql.jdbc.Driver
outputChangeLogFile=src/main/resources/db/changelog/changes/demodb-changelog.xml
Run Code Online (Sandbox Code Playgroud)
更新了 src/main/resources 下的 application.properties 文件以处理变更日志
#Hibernate
spring.datasource.url=jdbc:mysql://localhost:3306/demodb
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
#Jpa
spring.jpa.hibernate.ddl-auto=none
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
#Liquibase
spring.liquibase.change-log=classpath:db/changelog/db.changelog-master.xml
Run Code Online (Sandbox Code Playgroud)
db.changelog-master.xml在 src/main/resources/db/changelog 下创建文件
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog …Run Code Online (Sandbox Code Playgroud) 我在反应本机中有以下导航设置:
const HomeTabs = createTopTabNavigator();
function HomeScreen() {
return (
<HomeTabs.Navigator>
<HomeTabs.Screen name="Feed" component={FeedTab} />
<HomeTabs.Screen name="Groups" component={GroupsTab} />
</HomeTabs.Navigator>
);
}
const SettingsTabs = createTopTabNavigator();
function SettingsScreen() {
return (
<SettingsTabs.Navigator>
<SettingsTabs.Screen name="Profile" component={ProfileTab} />
<SettingsTabs.Screen name="Change Password" component={ChangePasswordTab} />
</SettingsTabs.Navigator>
);
}
const RootStack = createStackNavigator();
export default function App() {
return (
<NavigationContainer>
<RootStack.Navigator>
<RootStack.Screen name="Home" component={HomeScreen} />
<RootStack.Screen name="Settings" component={SettingsScreen} />
</RootStack.Navigator>
</NavigationContainer>
);
Run Code Online (Sandbox Code Playgroud)
}
其中Feed Tab有一个按钮,我需要使用它导航到Change Password Tab. 由于它位于不同的屏幕中,我怎样才能实现这一点?
Groups Tab …