mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
Migration is a plugin now
This commit is contained in:
@@ -13,13 +13,6 @@
|
||||
|
||||
<dependencies>
|
||||
|
||||
<!-- <dependency>
|
||||
<groupId>io.ebean</groupId>
|
||||
<artifactId>ebean-ddl-runner</artifactId>
|
||||
<version>1.2</version>
|
||||
</dependency> -->
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>io.ebean</groupId>
|
||||
<artifactId>ebean-migration-auto</artifactId>
|
||||
@@ -38,74 +31,10 @@
|
||||
<artifactId>ebean-migration</artifactId>
|
||||
<version>12.12.1</version>
|
||||
</dependency>
|
||||
|
||||
<!--
|
||||
<dependency>
|
||||
<groupId>io.ebean</groupId>
|
||||
<artifactId>ebean-migration</artifactId>
|
||||
<version>12.12.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.ebean</groupId>
|
||||
<artifactId>ebean-core-type</artifactId>
|
||||
<version>12.14.1-FOC1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
|
||||
|
||||
needed for java 11+
|
||||
<dependency>
|
||||
<groupId>org.glassfish.jaxb</groupId>
|
||||
<artifactId>jaxb-runtime</artifactId>
|
||||
<version>2.3.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
test dependencies
|
||||
<dependency>
|
||||
<groupId>io.avaje</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>1.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.ebean</groupId>
|
||||
<artifactId>ebean-datasource</artifactId>
|
||||
<version>${ebean-datasource.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.validation</groupId>
|
||||
<artifactId>validation-api</artifactId>
|
||||
<version>2.0.1.Final</version>
|
||||
<scope>test</scope>
|
||||
</dependency> -->
|
||||
|
||||
</dependencies>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>io.ebean</groupId>
|
||||
<artifactId>ebean-maven-plugin</artifactId>
|
||||
<version>${ebean-maven-plugin.version}</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>test</id>
|
||||
<phase>process-test-classes</phase>
|
||||
<configuration>
|
||||
<transformArgs>debug=0</transformArgs>
|
||||
</configuration>
|
||||
<goals>
|
||||
<goal>testEnhance</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>io.repaint.maven</groupId>
|
||||
<artifactId>tiles-maven-plugin</artifactId>
|
||||
|
||||
+3
-1
@@ -43,6 +43,8 @@ public class DbRunMigrationPlugin implements Plugin {
|
||||
|
||||
@Override
|
||||
public void start() {
|
||||
migrationRunner.run(server.dataSource());
|
||||
if (migrationRunner != null) {
|
||||
migrationRunner.run(server.dataSource());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
open module io.ebean.dbmigration.runner {
|
||||
|
||||
provides io.ebean.plugin.Plugin with io.ebeaninternal.dbmigration.run.DbRunMigrationPlugin;
|
||||
|
||||
requires transitive io.ebean.ddl.runner;
|
||||
requires transitive io.ebean.core;
|
||||
requires transitive java.xml.bind;
|
||||
requires io.ebean.core.type;
|
||||
requires io.ebean.migration;
|
||||
|
||||
}
|
||||
+4
-1
@@ -2,10 +2,13 @@ package io.ebeaninternal.dbmigration;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import io.ebean.config.DatabaseConfig;
|
||||
import io.ebean.plugin.Plugin;
|
||||
import io.ebean.plugin.SpiServer;
|
||||
|
||||
/**
|
||||
* Plugin to generate db-migration scripts automatically.
|
||||
* @author Roland Praml, FOCONIS AG
|
||||
*/
|
||||
public class DbMigrationPlugin implements Plugin {
|
||||
|
||||
private DefaultDbMigration dbMigration;
|
||||
|
||||
@@ -2,8 +2,8 @@ open module io.ebean.ddl.generator {
|
||||
|
||||
exports io.ebean.dbmigration;
|
||||
|
||||
provides io.ebean.dbmigration.DbMigration with io.ebeaninternal.dbmigration.DefaultDbMigration;
|
||||
provides io.ebeaninternal.api.SpiDdlGeneratorProvider with io.ebeaninternal.dbmigration.DdlGeneratorProvider;
|
||||
provides io.ebean.plugin.Plugin with io.ebeaninternal.dbmigration.DbMigrationPlugin;
|
||||
provides io.ebean.plugin.Plugin with io.ebeaninternal.dbmigration.DdlPlugin;
|
||||
|
||||
requires transitive io.ebean.ddl.runner;
|
||||
requires transitive io.ebean.core;
|
||||
|
||||
+14
-68
@@ -6,6 +6,7 @@ import io.ebean.config.DatabaseConfig;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.File;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
@@ -31,15 +32,17 @@ public class MysqlGenerateMigrationTest {
|
||||
config.loadFromProperties();
|
||||
config.setRegister(false);
|
||||
config.setDefaultServer(false);
|
||||
config.getPlatformConfig().setUseMigrationStoredProcedures(true);
|
||||
config.setRunMigration(false);
|
||||
config.getProperties().put("ebean.migrationtest.migration.pathToResources", pathToResources);
|
||||
config.getProperties().put("ebean.migrationtest.useMigrationStoredProcedures", true);
|
||||
config.getProperties().put("ebean.migrationtest.migration.platforms", "mysql");
|
||||
config.getProperties().put("ebean.migrationtest.migration.migrationPath", "dbmigration/migrationtest-procedures/");
|
||||
config.setPackages(Arrays.asList("misc.migration.v1_0"));
|
||||
config.setPackages(Arrays.asList("misc.migration.mysql_v1_0"));
|
||||
|
||||
// First, we clean up the output-directory
|
||||
// Files.walk(Paths.get(pathToResources , "dbmigration","migrationtest-procedures"))
|
||||
// .filter(Files::isRegularFile).map(Path::toFile).forEach(File::delete);
|
||||
Path path = Paths.get(pathToResources , "dbmigration","migrationtest-procedures");
|
||||
Files.walk(path)
|
||||
.filter(Files::isRegularFile).map(Path::toFile).forEach(File::delete);
|
||||
|
||||
DatabaseFactory.create(config).shutdown();
|
||||
|
||||
@@ -47,75 +50,18 @@ public class MysqlGenerateMigrationTest {
|
||||
assertThat(DbMigrationPlugin.getLastMigration()).isEqualTo("1.0__initial");
|
||||
assertThat(DbMigrationPlugin.getLastInit()).isEqualTo("1.0__initial");
|
||||
|
||||
// and we check repeatative calls
|
||||
DatabaseFactory.create(config).shutdown();
|
||||
assertThat(DbMigrationPlugin.getLastMigration()).isNull();
|
||||
assertThat(DbMigrationPlugin.getLastInit()).isNull();
|
||||
|
||||
// and now for v1_1
|
||||
config.setPackages(Arrays.asList("misc.migration.v1_1"));
|
||||
config.setPackages(Arrays.asList("misc.migration.mysql_v1_1"));
|
||||
DatabaseFactory.create(config).shutdown();
|
||||
assertThat(DbMigrationPlugin.getLastMigration()).isEqualTo("1.1,1.2__dropsFor_1.1");
|
||||
assertThat(DbMigrationPlugin.getLastInit()).isEqualTo("1.2");
|
||||
|
||||
final Path sqlFile = path.resolve("mysql/1.2__dropsFor_1.1.sql");
|
||||
|
||||
// // subsequent call
|
||||
// DatabaseFactory.create(config).shutdown();
|
||||
// assertThat(DbMigrationPlugin.getLastMigration()).isNull();
|
||||
// assertThat(DbMigrationPlugin.getLastInit()).isNull();
|
||||
//
|
||||
// // and now for v1_2
|
||||
// config.setPackages(Arrays.asList("misc.migration.v1_2"));
|
||||
// DatabaseFactory.create(config).shutdown();
|
||||
// assertThat(DbMigrationPlugin.getLastMigration()).isEqualTo("1.3,1.4__dropsFor_1.3");
|
||||
// assertThat(DbMigrationPlugin.getLastInit()).isEqualTo("1.4");
|
||||
//
|
||||
//
|
||||
// DefaultDbMigration migration = new DefaultDbMigration();
|
||||
// migration.setIncludeIndex(true);
|
||||
// // We use src/test/resources as output directory (so we see in GIT if files will change)
|
||||
// migration.setPathToResources("src/test/resources");
|
||||
//
|
||||
// migration.addPlatform(Platform.MYSQL, "mysql");
|
||||
//
|
||||
// final PlatformConfig platformConfig = new PlatformConfig();
|
||||
// platformConfig.setUseMigrationStoredProcedures(true);
|
||||
//
|
||||
// DatabaseConfig config = new DatabaseConfig();
|
||||
// config.setName("migrationtest");
|
||||
// config.loadFromProperties();
|
||||
// config.setPlatformConfig(platformConfig);
|
||||
// config.setRegister(false);
|
||||
// config.setDefaultServer(false);
|
||||
// config.getProperties().put("ebean.migration.migrationPath", "db/migration/mysql");
|
||||
//
|
||||
// config.setPackages(Arrays.asList("misc.migration.mysql_v1_0"));
|
||||
// Database server = DatabaseFactory.create(config);
|
||||
// migration.setServer(server);
|
||||
// migration.setMigrationPath("mysql/procedures");
|
||||
//
|
||||
// // First, we clean up the output-directory
|
||||
// assertThat(migration.migrationDirectory().getAbsolutePath()).contains("procedures");
|
||||
// Files.walk(migration.migrationDirectory().toPath())
|
||||
// .filter(Files::isRegularFile)
|
||||
// .map(Path::toFile).forEach(File::delete);
|
||||
//
|
||||
// // then we generate migration scripts for v1_0
|
||||
// assertThat(migration.generateMigration()).isEqualTo("1.0__initial");
|
||||
//
|
||||
// config.setPackages(Arrays.asList("misc.migration.mysql_v1_1"));
|
||||
// server.shutdown();
|
||||
// server = DatabaseFactory.create(config);
|
||||
// migration.setServer(server);
|
||||
// migration.setMigrationPath("mysql/procedures");
|
||||
// assertThat(migration.generateMigration()).isEqualTo("1.1,1.2__dropsFor_1.1");
|
||||
//
|
||||
// final Path sqlFile = migration.migrationDirectory().toPath()
|
||||
// .resolve("mysql/1.2__dropsFor_1.1.sql");
|
||||
//
|
||||
// assertThat(sqlFile).isNotEmptyFile();
|
||||
// assertThat(Files.readAllLines(sqlFile, StandardCharsets.UTF_8))
|
||||
// .contains("CALL usp_ebean_drop_column('migtest_e_basic', 'status2');")
|
||||
// .contains("CALL usp_ebean_drop_column('migtest_e_basic', 'description');");
|
||||
|
||||
assertThat(sqlFile).isNotEmptyFile();
|
||||
assertThat(Files.readAllLines(sqlFile, StandardCharsets.UTF_8))
|
||||
.contains("CALL usp_ebean_drop_column('migtest_e_basic', 'status2');")
|
||||
.contains("CALL usp_ebean_drop_column('migtest_e_basic', 'description');");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,339 +1,9 @@
|
||||
-- Migrationscripts for ebean unittest
|
||||
-- apply changes
|
||||
create table migtest_ckey_assoc (
|
||||
id integer auto_increment not null,
|
||||
assoc_one varchar(255),
|
||||
constraint pk_migtest_ckey_assoc primary key (id)
|
||||
);
|
||||
|
||||
create table migtest_ckey_detail (
|
||||
id integer auto_increment not null,
|
||||
something varchar(255),
|
||||
one_key integer,
|
||||
two_key varchar(127),
|
||||
constraint pk_migtest_ckey_detail primary key (id)
|
||||
);
|
||||
|
||||
create table migtest_ckey_parent (
|
||||
one_key integer not null,
|
||||
two_key varchar(127) not null,
|
||||
name varchar(255),
|
||||
assoc_id integer,
|
||||
version integer not null,
|
||||
constraint pk_migtest_ckey_parent primary key (one_key,two_key)
|
||||
);
|
||||
|
||||
create table migtest_fk_cascade (
|
||||
id bigint auto_increment not null,
|
||||
one_id bigint,
|
||||
constraint pk_migtest_fk_cascade primary key (id)
|
||||
);
|
||||
|
||||
create table migtest_fk_cascade_one (
|
||||
id bigint auto_increment not null,
|
||||
constraint pk_migtest_fk_cascade_one primary key (id)
|
||||
);
|
||||
|
||||
create table migtest_fk_none (
|
||||
id bigint auto_increment not null,
|
||||
one_id bigint,
|
||||
constraint pk_migtest_fk_none primary key (id)
|
||||
);
|
||||
|
||||
create table migtest_fk_none_via_join (
|
||||
id bigint auto_increment not null,
|
||||
one_id bigint,
|
||||
constraint pk_migtest_fk_none_via_join primary key (id)
|
||||
);
|
||||
|
||||
create table migtest_fk_one (
|
||||
id bigint auto_increment not null,
|
||||
constraint pk_migtest_fk_one primary key (id)
|
||||
);
|
||||
|
||||
create table migtest_fk_set_null (
|
||||
id bigint auto_increment not null,
|
||||
one_id bigint,
|
||||
constraint pk_migtest_fk_set_null primary key (id)
|
||||
);
|
||||
|
||||
create table migtest_e_basic (
|
||||
id integer auto_increment not null,
|
||||
status varchar(1) default 'A' not null,
|
||||
status2 varchar(127),
|
||||
status varchar(1),
|
||||
name varchar(127),
|
||||
description varchar(127),
|
||||
some_date datetime(6),
|
||||
new_string_field varchar(255) default 'foo''bar' not null,
|
||||
new_boolean_field tinyint(1) default 1 not null,
|
||||
new_boolean_field2 tinyint(1) default 1 not null,
|
||||
indextest1 varchar(127),
|
||||
indextest2 varchar(127),
|
||||
indextest3 varchar(127),
|
||||
indextest4 varchar(127),
|
||||
indextest5 varchar(127),
|
||||
indextest6 varchar(127),
|
||||
progress integer default 0 not null,
|
||||
new_integer integer default 42 not null,
|
||||
user_id integer,
|
||||
constraint uq_migtest_e_basic_description unique (description),
|
||||
constraint uq_migtest_e_basic_status_indextest1 unique (status,indextest1),
|
||||
constraint uq_migtest_e_basic_name unique (name),
|
||||
constraint uq_migtest_e_basic_indextest4 unique (indextest4),
|
||||
constraint uq_migtest_e_basic_indextest5 unique (indextest5),
|
||||
constraint pk_migtest_e_basic primary key (id)
|
||||
);
|
||||
|
||||
create table migtest_e_enum (
|
||||
id integer auto_increment not null,
|
||||
test_status varchar(1),
|
||||
constraint pk_migtest_e_enum primary key (id)
|
||||
);
|
||||
|
||||
create table migtest_e_history (
|
||||
id integer auto_increment not null,
|
||||
test_string bigint comment 'Column altered to long now',
|
||||
constraint pk_migtest_e_history primary key (id)
|
||||
) comment='We have history now';
|
||||
|
||||
create table migtest_e_history2 (
|
||||
id integer auto_increment not null,
|
||||
test_string varchar(255) default 'unknown' not null,
|
||||
test_string2 varchar(255),
|
||||
test_string3 varchar(255) default 'unknown' not null,
|
||||
new_column varchar(20),
|
||||
constraint pk_migtest_e_history2 primary key (id)
|
||||
);
|
||||
|
||||
create table migtest_e_history3 (
|
||||
id integer auto_increment not null,
|
||||
test_string varchar(255),
|
||||
constraint pk_migtest_e_history3 primary key (id)
|
||||
);
|
||||
|
||||
create table migtest_e_history4 (
|
||||
id integer auto_increment not null,
|
||||
test_number bigint,
|
||||
constraint pk_migtest_e_history4 primary key (id)
|
||||
);
|
||||
|
||||
create table migtest_e_history5 (
|
||||
id integer auto_increment not null,
|
||||
test_number integer,
|
||||
test_boolean tinyint(1) default 0 not null,
|
||||
constraint pk_migtest_e_history5 primary key (id)
|
||||
);
|
||||
|
||||
create table migtest_e_history6 (
|
||||
id integer auto_increment not null,
|
||||
test_number1 integer default 42 not null,
|
||||
test_number2 integer,
|
||||
constraint pk_migtest_e_history6 primary key (id)
|
||||
);
|
||||
|
||||
create table migtest_e_softdelete (
|
||||
id integer auto_increment not null,
|
||||
test_string varchar(255),
|
||||
deleted tinyint(1) default 0 not null,
|
||||
constraint pk_migtest_e_softdelete primary key (id)
|
||||
);
|
||||
|
||||
create table migtest_e_user (
|
||||
id integer auto_increment not null,
|
||||
constraint pk_migtest_e_user primary key (id)
|
||||
);
|
||||
|
||||
create table migtest_mtm_c (
|
||||
id integer auto_increment not null,
|
||||
name varchar(255),
|
||||
constraint pk_migtest_mtm_c primary key (id)
|
||||
);
|
||||
|
||||
create table migtest_mtm_c_migtest_mtm_m (
|
||||
migtest_mtm_c_id integer not null,
|
||||
migtest_mtm_m_id bigint not null,
|
||||
constraint pk_migtest_mtm_c_migtest_mtm_m primary key (migtest_mtm_c_id,migtest_mtm_m_id)
|
||||
);
|
||||
|
||||
create table migtest_mtm_m (
|
||||
id bigint auto_increment not null,
|
||||
name varchar(255),
|
||||
constraint pk_migtest_mtm_m primary key (id)
|
||||
);
|
||||
|
||||
create table migtest_mtm_m_migtest_mtm_c (
|
||||
migtest_mtm_m_id bigint not null,
|
||||
migtest_mtm_c_id integer not null,
|
||||
constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id)
|
||||
);
|
||||
|
||||
create table migtest_oto_child (
|
||||
id integer auto_increment not null,
|
||||
name varchar(255),
|
||||
master_id bigint,
|
||||
constraint uq_migtest_oto_child_master_id unique (master_id),
|
||||
constraint pk_migtest_oto_child primary key (id)
|
||||
);
|
||||
|
||||
create table migtest_oto_master (
|
||||
id bigint auto_increment not null,
|
||||
name varchar(255),
|
||||
constraint pk_migtest_oto_master primary key (id)
|
||||
);
|
||||
|
||||
create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3);
|
||||
create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6);
|
||||
create index ix_migtest_ckey_detail_parent on migtest_ckey_detail (one_key,two_key);
|
||||
alter table migtest_ckey_detail add constraint fk_migtest_ckey_detail_parent foreign key (one_key,two_key) references migtest_ckey_parent (one_key,two_key) on delete restrict on update restrict;
|
||||
|
||||
create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_id);
|
||||
alter table migtest_ckey_parent add constraint fk_migtest_ckey_parent_assoc_id foreign key (assoc_id) references migtest_ckey_assoc (id) on delete restrict on update restrict;
|
||||
|
||||
create index ix_migtest_fk_cascade_one_id on migtest_fk_cascade (one_id);
|
||||
alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete restrict on update restrict;
|
||||
|
||||
create index ix_migtest_fk_none_one_id on migtest_fk_none (one_id);
|
||||
alter table migtest_fk_none add constraint fk_migtest_fk_none_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict;
|
||||
|
||||
create index ix_migtest_fk_none_via_join_one_id on migtest_fk_none_via_join (one_id);
|
||||
alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict;
|
||||
|
||||
create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id);
|
||||
alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict;
|
||||
|
||||
create index ix_migtest_e_basic_user_id on migtest_e_basic (user_id);
|
||||
alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict on update restrict;
|
||||
|
||||
create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c on migtest_mtm_c_migtest_mtm_m (migtest_mtm_c_id);
|
||||
alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict on update restrict;
|
||||
|
||||
create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_id);
|
||||
alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict;
|
||||
|
||||
create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m on migtest_mtm_m_migtest_mtm_c (migtest_mtm_m_id);
|
||||
alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict;
|
||||
|
||||
create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_id);
|
||||
alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict on update restrict;
|
||||
|
||||
alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id) on delete restrict on update restrict;
|
||||
|
||||
alter table migtest_e_history add column sys_period_start datetime(6) default now(6);
|
||||
alter table migtest_e_history add column sys_period_end datetime(6);
|
||||
create table migtest_e_history_history(
|
||||
id integer,
|
||||
test_string bigint,
|
||||
sys_period_start datetime(6),
|
||||
sys_period_end datetime(6)
|
||||
);
|
||||
create view migtest_e_history_with_history as select * from migtest_e_history union all select * from migtest_e_history_history;
|
||||
|
||||
alter table migtest_e_history2 add column sys_period_start datetime(6) default now(6);
|
||||
alter table migtest_e_history2 add column sys_period_end datetime(6);
|
||||
create table migtest_e_history2_history(
|
||||
id integer,
|
||||
test_string varchar(255),
|
||||
test_string2 varchar(255),
|
||||
test_string3 varchar(255),
|
||||
new_column varchar(20),
|
||||
sys_period_start datetime(6),
|
||||
sys_period_end datetime(6)
|
||||
);
|
||||
create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
|
||||
|
||||
alter table migtest_e_history3 add column sys_period_start datetime(6) default now(6);
|
||||
alter table migtest_e_history3 add column sys_period_end datetime(6);
|
||||
create table migtest_e_history3_history(
|
||||
id integer,
|
||||
test_string varchar(255),
|
||||
sys_period_start datetime(6),
|
||||
sys_period_end datetime(6)
|
||||
);
|
||||
create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
|
||||
|
||||
alter table migtest_e_history4 add column sys_period_start datetime(6) default now(6);
|
||||
alter table migtest_e_history4 add column sys_period_end datetime(6);
|
||||
create table migtest_e_history4_history(
|
||||
id integer,
|
||||
test_number bigint,
|
||||
sys_period_start datetime(6),
|
||||
sys_period_end datetime(6)
|
||||
);
|
||||
create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
|
||||
|
||||
alter table migtest_e_history5 add column sys_period_start datetime(6) default now(6);
|
||||
alter table migtest_e_history5 add column sys_period_end datetime(6);
|
||||
create table migtest_e_history5_history(
|
||||
id integer,
|
||||
test_number integer,
|
||||
test_boolean tinyint(1),
|
||||
sys_period_start datetime(6),
|
||||
sys_period_end datetime(6)
|
||||
);
|
||||
create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
|
||||
|
||||
alter table migtest_e_history6 add column sys_period_start datetime(6) default now(6);
|
||||
alter table migtest_e_history6 add column sys_period_end datetime(6);
|
||||
create table migtest_e_history6_history(
|
||||
id integer,
|
||||
test_number1 integer,
|
||||
test_number2 integer,
|
||||
sys_period_start datetime(6),
|
||||
sys_period_end datetime(6)
|
||||
);
|
||||
create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history;
|
||||
|
||||
delimiter $$
|
||||
create trigger migtest_e_history_history_upd before update on migtest_e_history for each row begin
|
||||
insert into migtest_e_history_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string);
|
||||
set NEW.sys_period_start = now(6);
|
||||
end$$
|
||||
delimiter $$
|
||||
create trigger migtest_e_history_history_del before delete on migtest_e_history for each row begin
|
||||
insert into migtest_e_history_history (sys_period_start,sys_period_end,id, test_string) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string);
|
||||
end$$
|
||||
delimiter $$
|
||||
create trigger migtest_e_history2_history_upd before update on migtest_e_history2 for each row begin
|
||||
insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, test_string3, new_column) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column);
|
||||
set NEW.sys_period_start = now(6);
|
||||
end$$
|
||||
delimiter $$
|
||||
create trigger migtest_e_history2_history_del before delete on migtest_e_history2 for each row begin
|
||||
insert into migtest_e_history2_history (sys_period_start,sys_period_end,id, test_string, test_string3, new_column) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column);
|
||||
end$$
|
||||
delimiter $$
|
||||
create trigger migtest_e_history3_history_upd before update on migtest_e_history3 for each row begin
|
||||
insert into migtest_e_history3_history (sys_period_start,sys_period_end,id) values (OLD.sys_period_start, now(6),OLD.id);
|
||||
set NEW.sys_period_start = now(6);
|
||||
end$$
|
||||
delimiter $$
|
||||
create trigger migtest_e_history3_history_del before delete on migtest_e_history3 for each row begin
|
||||
insert into migtest_e_history3_history (sys_period_start,sys_period_end,id) values (OLD.sys_period_start, now(6),OLD.id);
|
||||
end$$
|
||||
delimiter $$
|
||||
create trigger migtest_e_history4_history_upd before update on migtest_e_history4 for each row begin
|
||||
insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number);
|
||||
set NEW.sys_period_start = now(6);
|
||||
end$$
|
||||
delimiter $$
|
||||
create trigger migtest_e_history4_history_del before delete on migtest_e_history4 for each row begin
|
||||
insert into migtest_e_history4_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number);
|
||||
end$$
|
||||
delimiter $$
|
||||
create trigger migtest_e_history5_history_upd before update on migtest_e_history5 for each row begin
|
||||
insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number, test_boolean) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number, OLD.test_boolean);
|
||||
set NEW.sys_period_start = now(6);
|
||||
end$$
|
||||
delimiter $$
|
||||
create trigger migtest_e_history5_history_del before delete on migtest_e_history5 for each row begin
|
||||
insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number, test_boolean) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number, OLD.test_boolean);
|
||||
end$$
|
||||
delimiter $$
|
||||
create trigger migtest_e_history6_history_upd before update on migtest_e_history6 for each row begin
|
||||
insert into migtest_e_history6_history (sys_period_start,sys_period_end,id, test_number1, test_number2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number1, OLD.test_number2);
|
||||
set NEW.sys_period_start = now(6);
|
||||
end$$
|
||||
delimiter $$
|
||||
create trigger migtest_e_history6_history_del before delete on migtest_e_history6 for each row begin
|
||||
insert into migtest_e_history6_history (sys_period_start,sys_period_end,id, test_number1, test_number2) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number1, OLD.test_number2);
|
||||
end$$
|
||||
|
||||
Reference in New Issue
Block a user