狀況:
一個在 model 裡新增的 VIEW,Synchronize Model 後建立到 server 上去,接下來每次進行 Synchronize Model 時依舊會重複建立。
分析結果:
在 WB 的 model 裡,VIEW 的 陳述式為:
CREATE VIEW `vw_cti_callerids` AS (select `cti_callerids`.`CallerID` AS `CallerID`,`cti_callerids`.`Title` AS `Title` from `cti_callerids`)
第一次 sync 到 server 之後,show create table `vw_cti_callerids` 結果是:
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `vw_cti_callerids` AS (select `cti_callerids`.`CallerID` AS `CallerID`,`cti_callerids`.`Title` AS `Title` from `cti_callerids`)
很明顯的,是 ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER 這段造成 WB 進行比對時的差異,因此把 show create table 的結果反貼回 model 就好了。
結論:
設計 model 的時候,其實根本不會管這個 view 是誰建立的,所以 WB 在比對時應該要忽略掉才對....... 雖然這樣說,搞不好有人就是想要明確宣告....... まぁ...