星期四, 11月 08, 2012

SQL Data Project with SQL Azure

最近把自己的一個專案放到了 Windows Azure 上面,整個佈署的感覺還蠻不錯的,所以在這裡跟大家分享一下佈署的經驗。

網路上已經有好心的大大教我們怎麼把網站佈署到 Windows Azure 了

使用Windows Azure WebSite幫客戶迅速搭建網站(董老師)
 
Windows Azure - 使用FTP上傳檔案到Web Sites並取得MySQL帳號與密碼(好朋友 SKY)
 
微軟Azure測試心得分享(二) :新版管理介面+快速啟用Web Sites
 
還有資料庫要如何佈署上 SQL Azure

利用 SQL Database Migration Wizard 移轉 SQL Server 2005-2012 到 Windows Azure SQL Database
 
SQL Azure - 使用SQL Azure Migration Wizard將本地的資料庫搬移到SQL Azure(好朋友 SKY)
 
如何佈署網站和資料庫到 Windows Azure,照上面那幾篇文章的方式,應該沒有啥太大的問題,這次的文章,主要著重在 SQL Azure 上,因為在佈署的時候,Database 這部份因該是比較容易困擾大家的,不是說資料上不去的問題,而是之後如果 DB Schema 變動,或是想用 design 的介面來改變 SQL Azure,那就會有點痛苦了,為什麼會痛苦呢?我們直接看圖說故事吧!

SQL Azure 點選 table 的右鍵

clip_image001

原 SSMS 點選 table 的右鍵

clip_image002

在 table 上按右鍵,很明顯可以看出來,很多東西被閹割了XD..被 SSMS 寵壞的我,要用 T-SQL 來直接新增 table、新增 index 根本是一整個痛苦,所以上了 SQL Azure 就不會想再去動 DB Schema,但是這情況怎麼可能會發生,所以懶惰習慣的我,當然想一些有的沒有的方式來把這困擾解決掉,科技始終來至於人性,當工程師不懶惰做啥鬼工程師..^^||..

Bibby 的方式就是直接用 SQL Server Database Project 來幫我處理這件事,如果對 SQL Database Project 不熟的,可以去看一下 Bibby 之前的文章"SQL Server Database Project"複習一下,接下來就看圖說故事摟!

先看流程

clip_image003
  1. 當有新需求的時候,一定會先改 Test Database Server 上的 Schema,當改好測試完後,就可以準備上 Code 了
  2. 藉由比對的方式,把 Test Database Server 上修改的 DB Schema 的更新到 SQL Server Database Project,通常如果專案有版本控管的工具,我們也會把修改變更的內容更新到我們的版控上
  3. 藉由比對的方式,把 SQL Server Database Project 變更的檔案更新到 SQL Azure 上,這樣就大功完成了,包括新增 table,新增 index 都可以用這方法簡單的做好
上述的流程,都在"SQL Server Database Project"文章中找到,反正如果需求要改 DB Schema ,那就照流程 1,2,3 按圖施工給他做一變就是了!但是..事情不是像愚人想的這麼簡單,還是會有些小石頭來絆你的,Bibby 也把跌來跌去的經驗分享給大家,讓大家參考參考!

問題一

當你看到下面這錯誤

clip_image004

記得去設定裡面把 "Allow incompatible platform" 打勾,這樣才能產出"合適"的 SQL Statement

clip_image005






clip_image006

問題二
 
clip_image007

解決方法去把"Block on possible data loss"這選項打勾吧!

clip_image008

理由跟原因,看下方網址吧!

http://social.msdn.microsoft.com/Forums/en-US/vstsdb/thread/7799b2d2-a067-47d5-9cf3-d0332baa2ebf

問題三
 
clip_image009

這跟你說,你有些 table 沒有加 cluster index 請去加上去,SQL Azure 才允許你上傳!

問題四
 
clip_image010

這問題是權限的問題啦,會讓你編譯不過,你只要把 Security 的資料夾 Exclude From Project

clip_image011

大概就這樣啦!,希望大家都可以順利上 Azure ,有問題再一起討論吧!!

1 則留言:

小朱 提到...

正名一下...SQL Azure -> SQL Database