l migrator pres

43
L-MIGRATOR BRINGING DATABASE MIGRATIONS TO LASSO BRIAN LOOMIS LASSO DEVELOPER CONFERENCE CHICAGO 2008

Upload: brian-loomis

Post on 15-May-2015

870 views

Category:

Technology


3 download

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.

TRANSCRIPT

Page 1: L Migrator Pres

L-MIGRATORBRINGING DATABASE MIGRATIONS TO LASSO

BRIAN LOOMIS

LASSO DEVELOPER CONFERENCECHICAGO 2008

Page 2: L Migrator Pres

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

WHAT ARE MIGRATIONS?

Page 4: L Migrator Pres

A MIGRATION

Page 5: L Migrator Pres

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

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

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

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

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

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

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

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

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

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

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

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
Page 18: L Migrator Pres

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

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

WRITING MIGRATIONS SCRIPTS

TYPE NAME SHOULD MATCH FILE NAME (NO EXTENSION)

Page 21: L Migrator Pres

WRITING MIGRATIONS SCRIPTS

TYPE NAME SHOULD MATCH FILE NAME (NO EXTENSION)

Page 22: L Migrator Pres

WRITING MIGRATIONS SCRIPTS

TYPE NAME SHOULD MATCH FILE NAME (NO EXTENSION)

Page 23: L Migrator Pres

WRITING MIGRATIONS SCRIPTS

TYPE NAME SHOULD MATCH FILE NAME (NO EXTENSION)

Page 24: L Migrator Pres

WRITING MIGRATIONS SCRIPTS

UPDATE TAG SHOWS FORWARD CHANGES

Page 25: L Migrator Pres

WRITING MIGRATIONS SCRIPTS

UPDATE TAG SHOWS FORWARD CHANGES

Page 26: L Migrator Pres

WRITING MIGRATIONS SCRIPTS

UPDATE TAG SHOWS FORWARD CHANGES

Page 27: L Migrator Pres

WRITING MIGRATIONS SCRIPTS

ROLL BACK TAG SHOWS ROLLBACKS OR UNDOS

Page 28: L Migrator Pres

WRITING MIGRATIONS SCRIPTS

ROLL BACK TAG SHOWS ROLLBACKS OR UNDOS

Page 29: L Migrator Pres

WRITING MIGRATIONS SCRIPTS

ROLL BACK TAG SHOWS ROLLBACKS OR UNDOS

Page 30: L Migrator Pres

WRITING MIGRATIONS SCRIPTS

Page 31: L Migrator Pres

WRITING MIGRATIONS SCRIPTS

Page 32: L Migrator Pres

WRITING MIGRATIONS SCRIPTS

Page 33: L Migrator Pres

MIGRATION COMMANDS

Page 34: L Migrator Pres

MIGRATION COMMANDS

Page 35: L Migrator Pres

TYPES OF MIGRATIONS COMMANDS

ADDTABLE, REMOVETABLE, RENAMETABLE

ADDFIELD, RENAMEFIELD, REMOVEFIELD, MODIFYFIELD

ADDINDEX, REMOVEINDEX

EXECUTE

Page 36: L Migrator Pres

EXAMPLES OF REAL MIGRATIONS

OPEN TEXT EDITOR FOOL!

Page 37: L Migrator Pres

COMMON GUIDELINES

TEST YOUR MIGRATIONS

NEVER EDIT A RELEASED MIGRATION

KEEP THEM SHORT AND SWEET

BE MIGRATION DRIVEN

Page 38: L Migrator Pres

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

LETS LOOK AT SOME MIGRATION SCENARIOS

Page 40: L Migrator Pres

MIGRATIONS UNDER VERSION CONTROL

SHOW EXAMPLES

LOCATION AT GITHUB. HTTP://GITHUB.COM/DJDARKBEAT/L-MIGRATOR/TREE/MASTER

YADA YADA.

Page 41: L Migrator Pres

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

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

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)