Why are migrations important? This session will discuss how to put your databases on version control. The presentation is based on the assumption that the developer already knows about version control and is using it on their projects in some form. L-Migrator will be discussed in relation to its integration into PageBlocks and its stand alone use. Attendees will come away with a knowledge of the methodology behind migrations, why they are important and when to use them, as well as shortcuts and tips for writing Lasso Migrations and the dangers of performing destructive migrations.
5. PLAN DRIVEN CYCLES
MINIMIZE CHANGES
EXTENSIVE UP-FRONT WORK
WATERFALL APPROACH
RUN INTO TROUBLE IF REQUIREMENTS ARE CHANGING
REQUIREMENTS CHURN IS A BIG PROBLEM FOR SUCH
PROCESSES
6. AGILE DEVELOPMENT
LOVES CHANGE
ALLOWING CHANGES TO OCCUR EVEN LATE IN A
DEVELOPMENT PROJECT
ATTITUDE OF THE PROCESS IS TO ENABLE CHANGE AS
MUCH AS POSSIBLE
RESPONSE TO THE INHERENT INSTABILITY OF
REQUIREMENTS IN MANY PROJECTS
BETTER SUPPORT DYNAMIC BUSINESS ENVIRONMENTS
7. A DIFFERENT
ATTITUDE TO DESIGN
INSTEAD OF THINKING OF DESIGN AS A PHASE - YOU
LOOK AT DESIGN AS AN ON-GOING PROCESS
INSTEAD OF THE COMMON CHAOS
ALLOW EVOLUTIONARY DESIGN TO WORK IN A
CONTROLLED MANNER
PROVIDE TECHNIQUES TO CONTROL EVOLUTIONARY
DESIGN AND MAKE THEM PRACTICAL
8. ITERATIVE DEVELOPMENT
RUN THE ENTIRE SOFTWARE LIFE-CYCLE MANY TIMES
DURING THE LIFE OF A PROJECT
COMPLETING THE ITERATION WITH WORKING, TESTED,
INTEGRATED CODE FOR A SMALL SUBSET OF THE
REQUIREMENTS OF THE FINAL PRODUCT
OTHER SPEAKERS...
9. HOW TO MAKE EVOLUTIONARY
DESIGN WORK FOR DATABASES
COMPLETING THE ITERATION WITH WORKING, TESTED,
INTEGRATED CODE
SMALL SUBSET OF THE REQUIREMENTS OF THE FINAL
PRODUCT
THESE ITERATIONS ARE SHORT, USUALLY RUNNING
BETWEEN A WEEK AND A COUPLE OF MONTHS
10. TENETS OF AGILE METHODS
PEOPLE WITH DIFFERENT SKILLS AND BACKGROUNDS
NEED TO COLLABORATE VERY CLOSELY TOGETHER
CAN'T COMMUNICATE MAINLY THROUGH FORMAL
MEETINGS AND DOCUMENTS
RECOGNIZES THAT PEOPLE LEARN BY TRYING THINGS
OUT
EACH DEVELOPER TO HAVE THEIR OWN SANDBOX
11. ALL CHANGES ARE
DATABASE REFACTORINGS
THREE DIFFERENT CHANGES THAT HAVE TO BE DONE
TOGETHER:
1) CHANGING THE DATABASE SCHEMA
2) MIGRATING THE DATA IN THE DATABASE
3) CHANGING THE DATABASE ACCESS CODE
12. AUTOMATE THE REFACTORINGS
DATABASE REFACTORING IS AUTOMATED BY WRITING IT
IN THE FORM OF SQL
DDL (FOR THE SCHEMA CHANGE)
DML (FOR THE DATA MIGRATION)
13. UPDATE ALL
DATABASE DEVELOPERS
AUTOMATICALLY UPDATE EVERYONE ON THE PROJECT
WHENEVER A CHANGE IS MADE TO THE DATABASE
MASTER.
SAME REFACTORING SCRIPT THAT UPDATES THE
MASTER AUTOMATICALLY UPDATES EVERYONE'S
DATABASE
14. CLEARLY SEPARATE ALL
DATABASE ACCESS CODE
IT'S IMPORTANT TO BE ABLE TO SEE HOW THE DATABASE
IS USED BY THE APPLICATION
IT MINIMIZES THE AREAS WHERE DEVELOPERS NEED
SQL KNOWLEDGE
LIFE EASIER TO DEVELOPERS NOT SKILLED WITH SQL
FOR THE DBA IT PROVIDES A CLEAR SECTION TO SEE HOW
THE DATABASE IS BEING USED
HELPS WITH INDEXES, OPTIMIZATION, AND TO SEE HOW
TO BE REFORMULATED TO PERFORM BETTER
15. TOOLS TO HELP
DOING THIS KIND OF THING REQUIRES A LOT OF
REPETITIVE TASKS.
WE DO NOT LIKE REPETITIVE TASKS.
18. WHAT ARE MIGRATIONS ?
KEEP HOLD OF THESE SCRIPT FILES TO PRODUCE A
COMPLETE CHANGE LOG OF ALL THE ALTERATIONS DONE
TO THE DATABASE
UPDATE ANY DATABASE INSTANCE TO THE LATEST
MASTER BY RUNNING THE CHANGE LOG
SEQUENCE AUTOMATED CHANGES IS AN ESSENTIAL
TOOL
AS WELL AS AUTOMATING THE FORWARD CHANGES,
YOU CAN CONSIDER AUTOMATING REVERSE CHANGES
FOR EACH REFACTORING
19. INSTALLING L-MIGRATOR
FILE EXTENSIONS SETUP PANEL TO ALLOW LASSO TO
PROCESS .CTYP, .DSP, .CNFG AND .LGC FILES.
COPY THE /DBM/ FOLDER (IT STANDS FOR DATABASE
MIGRATOR) INTO YOUR WEB APPLICATION’S ROOT
FOLDER.
OPEN THE MIGRATOR.CNFG FILE AND EDIT THE THREE
CONFIGURATION LINES.
YOU SHOULD BE ABLE TO LOAD THE L-MIGRATOR PAGE
AT YOUR ROOT DOMAIN /DBM/MIGRATOR.LASSO.
37. COMMON GUIDELINES
TEST YOUR MIGRATIONS
NEVER EDIT A RELEASED MIGRATION
KEEP THEM SHORT AND SWEET
BE MIGRATION DRIVEN
38. BE MIGRATION DRIVEN
AS A DEVELOPER WRITING SHORT LINES OF CODE IS
EASIER THAN FIRING UP AN EXTERNAL APP, MAKING
CHANGES, SAVING THEM ETC.
PLUS! YOU HAVE TO WRITE THE MIGRATION CODE LATER
ANYWAYS.
HOW MANY TIMES HAVE YOU EMAILED OR DOWNLOADED
AN SQL FILE?
40. MIGRATIONS UNDER
VERSION CONTROL
SHOW EXAMPLES
LOCATION AT GITHUB.
HTTP://GITHUB.COM/DJDARKBEAT/L-MIGRATOR/TREE/MASTER
YADA YADA.
41. CONCLUSION AND
BIGGER PICTURE
MIGRATIONS ARE YOUR FRIENDS
END CRAZY DATABASE REFACTORINGS
CREATE WAYS TO MANAGE SCHEMA WITHOUT PAID
TOOLS
PART OF PAGEBLOCKS AMAZING FRAMEWORK STARTED
BY GREG WILLITS. ALSO INTEGRATES WITH L-UNIT.
THE TRINITY IS NOW NIKOLAJ DE FINE LICHT, BRIAN
LOOMIS, AND KE CARLTON.
42. FUN
THERE WAS A YOUNG MAN FROM SOQUEL
WHO THOUGHT HE KNEW ABOUT SQL
HE LEARNED FLAT FILES WERE BAD
AND ABSTRACTED LIKE MAD
AND NO ONE IS HIS EQUAL