Large Scale Application Deployment
Database Schema Change Management
with Liquibase Evaluation Form
1.
Create a Table (10 Points)
a.
(Hint - use the Liquibase Quickstart as a
guide) Paste the entire Database Change Log required to create a table named
“student”, which has these columns:
i.
Column named “id” of type “int”
ii.
Column named “name” of type “varchar(50)”
iii.
Column named “enrolled” of type “boolean"
b.
(Hint – use the Running Liquibase
section as a guide) Execute the Database Change Log from 1a, using the Liquibase
“update” command, to apply the changes specified to your database. Capture a screenshot that proves the
“student” table was created and that it contains the columns specified.
2.
Alter a Table (15 Points)
a.
Update the Database Change Log created in 1,
adding a new change set that adds a new column to the “student” table:
i.
Column named “grade” of type “<anything that
supports decimals>”
Paste the entire
Database Change Log (it should now contain 2 change sets)
b.
Execute the Database Change Log from 2a, using
Liquibase update, to apply the changes specified to your database. Capture a screenshot that proves the
“student” table was altered and that it contains the (4) expected columns.
c.
Suppose that “grade” is a non-nullable column
(i.e. it is required for every row) and that the “student” table already has
entries in it when the “grade” column is added.
How can this situation be dealt with using the options available via the
Column tag? In other words, how can the schema constraint
be satisfied, even if the solution is to use a temporary placeholder value?
3.
Delete a Column (10 Points)
a.
Update the Database Change Log created in 2,
adding a new change set that deletes the “enrolled” column from the “student”
table. Paste the entire Database Change
Log (it should now contain 3 change sets).
b.
Execute the Database Change Log from 3a, using
Liquibase update, to apply the changes specified to your database. Capture a screenshot that proves the
“student” table was altered and that it once again contains only 3 columns.
4.
Tagging the Database (10 Points)
a.
(Hint – Use the tag
database feature) Your team is ready to release an application that relies
on the “student” table – congratulations!
To prepare for the release, update the Database Change Log created in 3,
adding a new change set that tags the database to version “1.0.0-RELEASE”. Paste the entire Database Change Log (it
should now contain 4 change sets).
b.
Capture a screenshot of the database table that
was modified when the database tag was applied.
Remember, Liquibase creates its own set of tables to store things like
tags.
5.
Create another Table (10 Points)
a.
Working from your previous Database Change Log,
add a new change set to create a new table named “instructor”, which has these
columns:
i.
Column named “id” of type “int”
ii.
Column named “name” of type “varchar(50)”
iii.
Column named “start_date” of type “<anything
that captures a date>"
Paste the entire Database Change
Log (it should now contain 5 change sets).
b.
Execute the Database Change Log from 5a, using
Liquibase update, to apply the changes specified to your database. Capture a screenshot that proves the
“instructor” table was created and that it contains the columns specified.
6.
Create another Tag (10 Points)
a.
Your team is ready to release the application
that relies on the “student” and “instructor” tables – now this is getting
easy! To prepare for the release, update
the Database Change Log created in 5, adding a new change set that tags the
database to version “1.1.0-RELEASE”.
Paste the entire Database Change Log (it should now contain 6 change
sets).
b.
Capture a screenshot of the database table that
was modified when the database tag was applied.
7.
Rollback (10
Points)
a.
After releasing version 1.1.0-RELEASE of your
application (the version with both “student” and “instructor” tables) to
Production, the Operations team finds there’s a problem and the application
needs to be reverted to version 1.0.0-RELEASE.
What liquibase command can be used to roll the database schema back to
the “1.0.0-RELEASE” tag?
b.
Execute the command and capture a screenshot
that shows the “instructor” table no longer exists.
8.
Rollforward (10
Points)
a.
After fixing the (non-database related)
application defect described in 7, the Operations team is ready deploy version
1.1.1-RELEASE of the application, which is compatible with version
1.1.0-RELEASE of the database schema.
What liquibase command can be used to roll the database schema forward
to the “1.1.0-RELEASE” tag?
b.
Execute the command and capture a screenshot
that shows the “instructor” table is back.
Get Free Quote!
352 Experts Online