diff --git a/qqq-sample-project/pom.xml b/qqq-sample-project/pom.xml index 917a1c4f..23f84047 100644 --- a/qqq-sample-project/pom.xml +++ b/qqq-sample-project/pom.xml @@ -98,6 +98,11 @@ assertj-core test + + org.liquibase + liquibase-core + 4.10.0 + @@ -116,6 +121,19 @@ + + + org.liquibase + liquibase-maven-plugin + 4.10.0 + + /src/main/resources/liquibase/liquibase.properties + ${env.LB_DB_URL} + ${env.LB_DB_USERNAME} + ${env.LB_DB_PASSWORD} + ${env.LB_CONTEXTS} + + diff --git a/qqq-sample-project/src/main/java/com/kingsrook/sampleapp/SampleMetaDataProvider.java b/qqq-sample-project/src/main/java/com/kingsrook/sampleapp/SampleMetaDataProvider.java index 2c9bb956..9be5c4d6 100644 --- a/qqq-sample-project/src/main/java/com/kingsrook/sampleapp/SampleMetaDataProvider.java +++ b/qqq-sample-project/src/main/java/com/kingsrook/sampleapp/SampleMetaDataProvider.java @@ -261,6 +261,7 @@ public class SampleMetaDataProvider .withField(new QFieldMetaData("lastName", QFieldType.STRING).withBackendName("last_name").withIsRequired(true)) .withField(new QFieldMetaData("birthDate", QFieldType.DATE).withBackendName("birth_date")) .withField(new QFieldMetaData("email", QFieldType.STRING)) + .withField(new QFieldMetaData("isEmployed", QFieldType.BOOLEAN).withBackendName("is_employed")) .withField(new QFieldMetaData("annualSalary", QFieldType.DECIMAL).withBackendName("annual_salary").withDisplayFormat(DisplayFormat.CURRENCY)) .withField(new QFieldMetaData("daysWorked", QFieldType.INTEGER).withBackendName("days_worked").withDisplayFormat(DisplayFormat.COMMAS)) diff --git a/qqq-sample-project/src/main/resources/liquibase/changelog.xml b/qqq-sample-project/src/main/resources/liquibase/changelog.xml new file mode 100644 index 00000000..9ceff1dd --- /dev/null +++ b/qqq-sample-project/src/main/resources/liquibase/changelog.xml @@ -0,0 +1,13 @@ + + + + + + diff --git a/qqq-sample-project/src/main/resources/liquibase/changesets/initial.xml b/qqq-sample-project/src/main/resources/liquibase/changesets/initial.xml new file mode 100644 index 00000000..4beba756 --- /dev/null +++ b/qqq-sample-project/src/main/resources/liquibase/changesets/initial.xml @@ -0,0 +1,100 @@ + + + + + + DROP TABLE IF EXISTS person; + CREATE TABLE person + ( + id INT AUTO_INCREMENT primary key , + create_date TIMESTAMP DEFAULT now(), + modify_date TIMESTAMP DEFAULT now(), + + first_name VARCHAR(80) NOT NULL, + last_name VARCHAR(80) NOT NULL, + birth_date DATE, + email VARCHAR(250) NOT NULL, + is_employed BOOLEAN, + annual_salary DECIMAL(12,2), + days_worked INTEGER + ); + INSERT INTO person (id, first_name, last_name, birth_date, email, is_employed, annual_salary, days_worked) VALUES (1, 'Darin', 'Kelkhoff', '1980-05-31', 'darin.kelkhoff@gmail.com', 1, 25000, 27); + INSERT INTO person (id, first_name, last_name, birth_date, email, is_employed, annual_salary, days_worked) VALUES (2, 'James', 'Maes', '1980-05-15', 'jmaes@mmltholdings.com', 1, 26000, 124); + INSERT INTO person (id, first_name, last_name, birth_date, email, is_employed, annual_salary, days_worked) VALUES (3, 'Tim', 'Chamberlain', '1976-05-28', 'tchamberlain@mmltholdings.com', 0, null, 0); + INSERT INTO person (id, first_name, last_name, birth_date, email, is_employed, annual_salary, days_worked) VALUES (4, 'Tyler', 'Samples', NULL, 'tsamples@mmltholdings.com', 1, 30000, 99); + INSERT INTO person (id, first_name, last_name, birth_date, email, is_employed, annual_salary, days_worked) VALUES (5, 'Garret', 'Richardson', '1981-01-01', 'grichardson@mmltholdings.com', 1, 1000000, 232); + + + DROP TABLE IF EXISTS carrier; + CREATE TABLE carrier + ( + id INT AUTO_INCREMENT PRIMARY KEY, + name VARCHAR(80) NOT NULL, + company_code VARCHAR(80) NOT NULL, + service_level VARCHAR(80) NOT NULL + ); + INSERT INTO carrier (id, name, company_code, service_level) VALUES (1, 'UPS Ground', 'UPS', 'G'); + INSERT INTO carrier (id, name, company_code, service_level) VALUES (2, 'UPS 2Day', 'UPS', '2'); + INSERT INTO carrier (id, name, company_code, service_level) VALUES (3, 'UPS International', 'UPS', 'I'); + INSERT INTO carrier (id, name, company_code, service_level) VALUES (4, 'Fedex Ground', 'FEDEX', 'G'); + INSERT INTO carrier (id, name, company_code, service_level) VALUES (5, 'Fedex Next Day', 'UPS', '1'); + INSERT INTO carrier (id, name, company_code, service_level) VALUES (6, 'Will Call', 'WILL_CALL', 'W'); + INSERT INTO carrier (id, name, company_code, service_level) VALUES (7, 'USPS Priority', 'USPS', '1'); + INSERT INTO carrier (id, name, company_code, service_level) VALUES (8, 'USPS Super Slow', 'USPS', '4'); + INSERT INTO carrier (id, name, company_code, service_level) VALUES (9, 'USPS Super Fast', 'USPS', '0'); + INSERT INTO carrier (id, name, company_code, service_level) VALUES (10, 'DHL International', 'DHL', 'I'); + INSERT INTO carrier (id, name, company_code, service_level) VALUES (11, 'GSO', 'GSO', 'G'); + + + DROP TABLE IF EXISTS child_table; + CREATE TABLE child_table + ( + id INT AUTO_INCREMENT primary key, + name VARCHAR(80) NOT NULL + ); + INSERT INTO child_table (id, name) VALUES (1, 'Timmy'); + INSERT INTO child_table (id, name) VALUES (2, 'Jimmy'); + INSERT INTO child_table (id, name) VALUES (3, 'Johnny'); + INSERT INTO child_table (id, name) VALUES (4, 'Gracie'); + INSERT INTO child_table (id, name) VALUES (5, 'Suzie'); + + + DROP TABLE IF EXISTS parent_table; + CREATE TABLE parent_table + ( + id INT AUTO_INCREMENT PRIMARY KEY, + name VARCHAR(80) NOT NULL, + child_id INT, + foreign key (child_id) references child_table(id) + ); + INSERT INTO parent_table (id, name, child_id) VALUES (1, 'Tim''s Dad', 1); + INSERT INTO parent_table (id, name, child_id) VALUES (2, 'Tim''s Mom', 1); + INSERT INTO parent_table (id, name, child_id) VALUES (3, 'Childless Man', null); + INSERT INTO parent_table (id, name, child_id) VALUES (4, 'Childless Woman', null); + INSERT INTO parent_table (id, name, child_id) VALUES (5, 'Johny''s Single Dad', 3); + + + DROP TABLE IF EXISTS city; + CREATE TABLE city + ( + id INT AUTO_INCREMENT PRIMARY KEY, + name VARCHAR(80) NOT NULL, + state VARCHAR(2) NOT NULL + ); + INSERT INTO city (id, name, state) VALUES (1, 'Decatur', 'IL'); + INSERT INTO city (id, name, state) VALUES (2, 'Chester', 'IL'); + INSERT INTO city (id, name, state) VALUES (3, 'St. Louis', 'MO'); + INSERT INTO city (id, name, state) VALUES (4, 'Baltimore', 'MD'); + INSERT INTO city (id, name, state) VALUES (5, 'New York', 'NY'); + + + + + diff --git a/qqq-sample-project/src/main/resources/liquibase/liquibase.properties b/qqq-sample-project/src/main/resources/liquibase/liquibase.properties new file mode 100644 index 00000000..160d8648 --- /dev/null +++ b/qqq-sample-project/src/main/resources/liquibase/liquibase.properties @@ -0,0 +1,6 @@ +#liquibase.properties +classpath: /src/main/resources/liquibase/lib/mysql-connector-java-8.0.29.jar +driver: com.mysql.cj.jdbc.Driver +changeLogFile:/src/main/resources/liquibase/changelog.xml +logLevel: INFO +liquibase.hub.mode=off \ No newline at end of file