2009-08-29 81 views
1

我來自客戶端語言編程背景,特別是ActionScript。因此,雖然我的代碼很清楚,但我的服務器端體驗非常少,特別是數據庫版本控制以及rails應用程序本身。然後是命令行,這是一個完整的謎。版本控制欄和數據庫,從哪裏開始?

現在我正在構建我的第一個rails應用程序,並且在我的本地機器上看起來相當不錯。我認爲這是我開始放下版本控制的時候了。大多數書籍都是版本控制的東西,但它看起來比構建rails應用程序更復雜,這一切都是正常的。所以我的問題是:

  • 從哪裏開始學習這個東西?
  • 我可以使用rails應用程序一起版本控制數據庫嗎?
  • 構建rails應用程序本身是否更耗時更復雜?

回答

2
  • 您只需 環顧四周,並試圖東西 了學習這有點兒東西,有沒有替代品。其他 只能建議哪種工具最 爲你的努力做的,但 每個人都有自己的意見 so..yea..just做到這一點!

  • 我個人不知道版本如何 控制數據庫,但 普通版本控制你的 代碼,我會建議「混帳」(鏈接 here!)。它是最簡單的 和最流行的版本控制 系統之一。最初由Linus Torvalds設計 ,現在 通過....保持

  • 是/否,這取決於你如何定義 複雜。要使用「混帳」你的代碼, 您最初將在代碼的目錄鍵入

    的git的init

    創建版本 控制。並 添加所有到Git裏,告訴它 保持對在 文件改變眼睛的代碼,您可以鍵入:

    git的添加*

    ,然後提交(保存 的變化) ,你會鍵入:

    git的承諾-m「輸入你已經 到目前爲止做了什麼」

    而這就是非常有到 混帳,你會重複過去兩年 ST eps來添加並保存您的更改爲 您開發您的代碼。所以,如果你已經 做錯了你的代碼,你必須做的所有 是回頭看看你的 「提交」,並決定你想要 備份軌道。

    所以是啊git是非常棒的,有 是別人,但它不是很好我的 意見。他們是:SVN,CVS。

回到控制數據庫的版本,爲什麼要這麼做? Rails有一個內置的數據庫版本控制,每次你改變你的數據庫的方案,它的記錄,所以如果你做錯了什麼,你總是可以回覆!你是否想要備份你的數據庫數據?因爲如果是MySQL,你可以隨時把它導出到xml中,並且版本控制那個xml文件!

+0

感謝您的信息將派上用場 – conspirisi 2009-08-29 12:00:38

+0

版本控制絕對是您需要選擇的東西,我建議您使用git,因爲這將成爲「rails標準」。 – jonnii 2009-08-29 13:24:07

+0

有點晚了,但如果你認爲我的回答很好,請選擇它作爲答案:) – chutsu 2012-09-30 15:23:51

1

如果你有興趣在版本控制一般PragProg傢伙有一些關於Subversion和Git的(http://www.pragprog.com)的書,看看這些,如果你想建立自己的倉庫。顛覆書也可以免費下載(​​)。這將使您能夠將代碼保存在版本控制系統中(即使對於個人項目我也不會這樣做)。如果您不想創建管理您自己的版本控制系統,則可以使用託管選項。

至於數據庫設置。遷移是要走的路,但您可能會發現每個表使用一次遷移更容易(即編輯您擁有的遷移,而不是爲每次更改創建新遷移)。這樣你就可以在一個地方跟蹤所有的表格變化。不是在Rails中構建事物的傳統方式,但它有一些優點。

你必須管理的一個問題是數據庫中的數據。如果你上線並決定回滾你的數據庫,你將失去所有的數據,因此投資數據庫的備份/恢復工具。

一旦你有版本控制,它一般易於使用和管理。如果您正在使用IDE,它可能已集成到您的版本控制系統中(尤其是如果您使用的是SubVersion)。

+0

另一個好的git資源是www.gitready.com – jonnii 2009-08-29 13:22:52

2

獲得像Subversion或Git這樣的版本控制系統是非常簡單的部分。

困難的部分是弄清楚如何使它與數據庫一起工作。這與代碼不完全一樣。

例如,您是否僅存檔模式歷史記錄或數據? (可能是前者,但你永遠不知道。)你將如何管理加載數據(例如,用於測試場景)?

Scott Ambler和Pramod Sadalange在處理agile databases方面做了一些工作。他們建議對所有模式更改進行腳本編寫,並按順序應用它們,以使模式達到特定版本。也許this是一個很好的開始。

+0

我知道這不會很簡單:) – conspirisi 2009-08-29 11:59:33

+0

此答案isn非常具體的軌道。我假設所有模式更改都是通過腳本編寫的,您的意思是檢查數據庫遷移到您的版本控制系統中。然後你可以確保你的數據庫表匹配,並且你可以回滾數據庫的狀態,如果你願意 – corbin 2013-04-01 20:48:20

+0

沒錯,我不認爲答案是Rails的具體情況,不需要。這個問題/答案差不多四年之久。這個評論現在有多大幫助? – duffymo 2013-04-01 21:55:54

0

我不知道你需要用git對數據庫進行版本化,如果你這樣做,那麼版本庫會很大。我只是定期轉儲和gzip數據庫,您可以保留以供將來參考。你的應用程序的模式應該在你的版本控制中是安全的,而且你的應用程序的數據庫轉儲應該沒問題。

如果您一直編碼一段時間沒有源代碼管理。停。去學習一些版本控制,它會在一天內節省你的屁股。 Ruby,ActionScript,無論你在寫什麼,把它放在git中,或者你選擇使用的任何東西,你都會更好。在我添加我需要的幾個插件等之前,我甚至還沒有編寫任何自己的代碼,所以我有一兩個檢查。

提前入住,經常入住,經常與早期發佈相同的理念。如果你需要的話,你檢查的東西越多,你必須回滾到更多的點,而且你也可以更好地檢查你的progess,無論是發佈還是作爲編碼者的發展。