flyway的三种命名

flyway的三种命名_第1张图片

一、V(Versioned Migrations):

    每个文件只会被执行一次

    version必须唯一,可以用递增的整型和点(.)组合 下面都是合法的:

  • 1
  • 001
  • 5.2
  • 1.2.3.4.5.6.7.8.9
  • 205.68
  • 20130115113556
  • 2013.1.15.11.35.56
  • 2013.01.15.11.35.56

    常用于创建、修改、删除表;插入、修改数据等  如:

CREATE TABLE car (
    id INT NOT NULL PRIMARY KEY,
    license_plate VARCHAR NOT NULL,
    color VARCHAR NOT NULL
);

ALTER TABLE owner ADD driver_license_id VARCHAR;

INSERT INTO brand (name) VALUES ('DeLorean');

二、U(Undo Migrations):

    与version作用相反,版本号与V一致,

DELETE FROM brand WHERE name='DeLorean';

ALTER TABLE owner DROP driver_license_id;

DROP TABLE car;
疑问:为什么不直接用V呢?U是否必要?

三、R(Repeatable Migrations):

    校验和变化了就会执行,可以用于存放view/procedures/functions/packages...

    执行顺序:在所有Version执行完了才会执行,自身执行顺序按描述排序。

    因为会执行多次,编写DDL语句时需加上CREATE OR REPLACE。如:
CREATE OR REPLACE VIEW blue_cars AS 
    SELECT id, license_plate FROM cars WHERE color='blue';

你可能感兴趣的:(java)