L Migrator Pres
-
Upload
brian-loomis -
Category
Technology
-
view
870 -
download
3
description
Transcript of L Migrator Pres
![Page 1: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/1.jpg)
L-MIGRATORBRINGING DATABASE MIGRATIONS TO LASSO
BRIAN LOOMIS
LASSO DEVELOPER CONFERENCECHICAGO 2008
![Page 2: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/2.jpg)
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
![Page 3: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/3.jpg)
WHAT ARE MIGRATIONS?
![Page 4: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/4.jpg)
A MIGRATION
![Page 5: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/5.jpg)
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
![Page 6: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/6.jpg)
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
![Page 7: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/7.jpg)
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
![Page 8: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/8.jpg)
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...
![Page 9: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/9.jpg)
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
![Page 10: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/10.jpg)
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
![Page 11: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/11.jpg)
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
![Page 12: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/12.jpg)
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)
![Page 13: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/13.jpg)
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
![Page 14: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/14.jpg)
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
![Page 15: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/15.jpg)
TOOLS TO HELP
DOING THIS KIND OF THING REQUIRES A LOT OF REPETITIVE TASKS.
WE DO NOT LIKE REPETITIVE TASKS.
![Page 16: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/16.jpg)
ENTER L-MIGRATOR
LOVES CHANGE
SUPPORT DYNAMIC BUSINESS ENVIRONMENTS
PEOPLE LEARN BY TRYING THINGS
EACH DEVELOPER HAS THEIR OWN SANDBOX
![Page 17: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/17.jpg)
![Page 18: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/18.jpg)
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
![Page 19: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/19.jpg)
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.
![Page 20: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/20.jpg)
WRITING MIGRATIONS SCRIPTS
TYPE NAME SHOULD MATCH FILE NAME (NO EXTENSION)
![Page 21: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/21.jpg)
WRITING MIGRATIONS SCRIPTS
TYPE NAME SHOULD MATCH FILE NAME (NO EXTENSION)
![Page 22: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/22.jpg)
WRITING MIGRATIONS SCRIPTS
TYPE NAME SHOULD MATCH FILE NAME (NO EXTENSION)
![Page 23: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/23.jpg)
WRITING MIGRATIONS SCRIPTS
TYPE NAME SHOULD MATCH FILE NAME (NO EXTENSION)
![Page 24: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/24.jpg)
WRITING MIGRATIONS SCRIPTS
UPDATE TAG SHOWS FORWARD CHANGES
![Page 25: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/25.jpg)
WRITING MIGRATIONS SCRIPTS
UPDATE TAG SHOWS FORWARD CHANGES
![Page 26: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/26.jpg)
WRITING MIGRATIONS SCRIPTS
UPDATE TAG SHOWS FORWARD CHANGES
![Page 27: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/27.jpg)
WRITING MIGRATIONS SCRIPTS
ROLL BACK TAG SHOWS ROLLBACKS OR UNDOS
![Page 28: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/28.jpg)
WRITING MIGRATIONS SCRIPTS
ROLL BACK TAG SHOWS ROLLBACKS OR UNDOS
![Page 29: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/29.jpg)
WRITING MIGRATIONS SCRIPTS
ROLL BACK TAG SHOWS ROLLBACKS OR UNDOS
![Page 30: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/30.jpg)
WRITING MIGRATIONS SCRIPTS
![Page 31: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/31.jpg)
WRITING MIGRATIONS SCRIPTS
![Page 32: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/32.jpg)
WRITING MIGRATIONS SCRIPTS
![Page 33: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/33.jpg)
MIGRATION COMMANDS
![Page 34: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/34.jpg)
MIGRATION COMMANDS
![Page 35: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/35.jpg)
TYPES OF MIGRATIONS COMMANDS
ADDTABLE, REMOVETABLE, RENAMETABLE
ADDFIELD, RENAMEFIELD, REMOVEFIELD, MODIFYFIELD
ADDINDEX, REMOVEINDEX
EXECUTE
![Page 36: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/36.jpg)
EXAMPLES OF REAL MIGRATIONS
OPEN TEXT EDITOR FOOL!
![Page 37: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/37.jpg)
COMMON GUIDELINES
TEST YOUR MIGRATIONS
NEVER EDIT A RELEASED MIGRATION
KEEP THEM SHORT AND SWEET
BE MIGRATION DRIVEN
![Page 38: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/38.jpg)
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?
![Page 39: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/39.jpg)
LETS LOOK AT SOME MIGRATION SCENARIOS
![Page 40: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/40.jpg)
MIGRATIONS UNDER VERSION CONTROL
SHOW EXAMPLES
LOCATION AT GITHUB. HTTP://GITHUB.COM/DJDARKBEAT/L-MIGRATOR/TREE/MASTER
YADA YADA.
![Page 41: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/41.jpg)
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.
![Page 42: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/42.jpg)
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
![Page 43: L Migrator Pres](https://reader036.fdocuments.in/reader036/viewer/2022062513/5555d12ed8b42a711f8b4a4a/html5/thumbnails/43.jpg)
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)