Upload
brian-loomis
View
870
Download
3
Tags:
Embed Size (px)
DESCRIPTION
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.
Citation preview
L-MIGRATORBRINGING DATABASE MIGRATIONS TO LASSO
BRIAN LOOMIS
LASSO DEVELOPER CONFERENCECHICAGO 2008
WHAT’S IN BOISE? HEWLETT PACKARD, MICRON.
FOUNDED 9 YEARS AGO, BOISE IDAHO. -1999
SCRIPTING APPLESCRIPT, FILEMAKER, LASSO,ADOBE INDESIGN SERVER.
ADOBE PARTNER, APPLE CONSULTANTS NETWORK, LPA.
GLUEWARE
WHAT ARE MIGRATIONS?
A MIGRATION
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
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
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
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...
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
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
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
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)
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
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
TOOLS TO HELP
DOING THIS KIND OF THING REQUIRES A LOT OF REPETITIVE TASKS.
WE DO NOT LIKE REPETITIVE TASKS.
ENTER L-MIGRATOR
LOVES CHANGE
SUPPORT DYNAMIC BUSINESS ENVIRONMENTS
PEOPLE LEARN BY TRYING THINGS
EACH DEVELOPER HAS THEIR OWN SANDBOX
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
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.
WRITING MIGRATIONS SCRIPTS
TYPE NAME SHOULD MATCH FILE NAME (NO EXTENSION)
WRITING MIGRATIONS SCRIPTS
TYPE NAME SHOULD MATCH FILE NAME (NO EXTENSION)
WRITING MIGRATIONS SCRIPTS
TYPE NAME SHOULD MATCH FILE NAME (NO EXTENSION)
WRITING MIGRATIONS SCRIPTS
TYPE NAME SHOULD MATCH FILE NAME (NO EXTENSION)
WRITING MIGRATIONS SCRIPTS
UPDATE TAG SHOWS FORWARD CHANGES
WRITING MIGRATIONS SCRIPTS
UPDATE TAG SHOWS FORWARD CHANGES
WRITING MIGRATIONS SCRIPTS
UPDATE TAG SHOWS FORWARD CHANGES
WRITING MIGRATIONS SCRIPTS
ROLL BACK TAG SHOWS ROLLBACKS OR UNDOS
WRITING MIGRATIONS SCRIPTS
ROLL BACK TAG SHOWS ROLLBACKS OR UNDOS
WRITING MIGRATIONS SCRIPTS
ROLL BACK TAG SHOWS ROLLBACKS OR UNDOS
WRITING MIGRATIONS SCRIPTS
WRITING MIGRATIONS SCRIPTS
WRITING MIGRATIONS SCRIPTS
MIGRATION COMMANDS
MIGRATION COMMANDS
TYPES OF MIGRATIONS COMMANDS
ADDTABLE, REMOVETABLE, RENAMETABLE
ADDFIELD, RENAMEFIELD, REMOVEFIELD, MODIFYFIELD
ADDINDEX, REMOVEINDEX
EXECUTE
EXAMPLES OF REAL MIGRATIONS
OPEN TEXT EDITOR FOOL!
COMMON GUIDELINES
TEST YOUR MIGRATIONS
NEVER EDIT A RELEASED MIGRATION
KEEP THEM SHORT AND SWEET
BE MIGRATION DRIVEN
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?
LETS LOOK AT SOME MIGRATION SCENARIOS
MIGRATIONS UNDER VERSION CONTROL
SHOW EXAMPLES
LOCATION AT GITHUB. HTTP://GITHUB.COM/DJDARKBEAT/L-MIGRATOR/TREE/MASTER
YADA YADA.
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.
FUN
T H E R E W A S A Y O U N G M A N F R O M S O Q U E L
W H O T H O U G H T H E K N E W A B O U T S Q L
H E L E A R N E D F L A T F I L E S W E R E B A D
A N D A B S T R A C T E D L I K E M A D
A N D N O O N E I S H I S E Q U A L
RESOURCES
MARTIN FOWLERHTTP://MARTINFOWLER.COM/ARTICLES/EVODB.HTML
GREG WILLITS SEMI-RETIRED (FROM LASSO)
TAGSWAPHTTP://WWW.TAGSWAP.NET/ARTICLES
BRIAN LOOMIS AIM DJDARKBEAT
NIKOLAJ (PAGEBLOCKS)
KE (L-UNIT)