快使用flyway管理sql腳本吧~

  這兩個月開發了個很有意思的項目,記錄一下有趣的過程。

  用的是jdk1.8,flyway7.15。

  項目是在開源的flyway項目基礎上二次開發,像git管理代碼一樣,管理起項目的sql腳本文件。

  免費版的沒提供undo功能,有大牛建了同名的包,就重寫了框架部分類= =第一次看到有人重寫框架,新公司真的技術上沒的說(比起電網)。

  框架沒考慮集羣與類似saas項目的腳本怎麼執行,我們就手動增加了一些功能。但基本的功能也有用上,我運用了一切皆文件的思想,每個文件夾對應一個數據源,只需要用不同的配置文件就好。

  這樣就不用建很多個代碼倉庫了,但我萬萬沒想到,運維不理解這一點,他們扯起了什麼,代碼倉庫一樣,真執行的時候不好執行……我真是無語啦。最後沒辦法,建了2個代碼倉庫。

  項目真的是這樣,一開始什麼都想的很好,但是有各種各樣很急的需求,然後人們總要爲了這些很急的需求去修改代碼……代碼寫的不好看也沒什麼辦法。事後再改更是不存在的事情。

  然後是flyway的一些坑,直接搜flyway 踩坑吧,有幾個不設置就有坑的屬性,比如clean?會清楚所有表空間信息。

  框架本身也有點問題,會有相應的歷史表,必須建在一個新的表空間裏,如果指定了老的表空間,它會掃描該表空間下的所有表,但沒看出來有什麼用……效果就是每個命令都會很慢。我在想這個是不是可以給框架提個issue哈哈。

  可以指定某個版本之後執行,baseline屬性來指定。

  但現在也感覺到一個問題,後續如果執行的多了,每次版本升級時歷史表打印會出來很多數據,有些麻煩,等解決了我再發出來吧~

  最近入手了 on java8 的2本書,趁着5折入的。沒想到啊,現在買書就像女生買口紅一樣了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章