簡體   English   中英

如何有選擇地導出github倉庫的mysql數據

[英]How to selectively export mysql data for a github repo

我們是一個開源項目,並希望通過github公共回購協作編輯我們的網站。

關於將mysql數據導出到github的最佳解決方案的任何想法,因為mysql可以包含一些敏感信息,以及我們如何對其中發生的更改進行版本化?

答案是你沒有在回購中保存數據。 您可能想要保留您的ddl,也許還有一些配置數據。 但就是這樣。 如果要對數據進行版本控制,還有其他選項。 GIT不是其中之一

使用博客引擎“git后端編輯”,忘記mysql,在github.com上提交,推拉,支配!

這是最好的列表:

  1. http://jekyllrb.com/
  2. http://nestacms.com/
  3. http://cloudhead.io/toto
  4. https://github.com/colszowka/serious

以及萬一,...一個簡單的,Git驅動的wiki,帶有甜蜜的API和本地前端。

假設您希望以這種方式處理少量數據,可以使用mysqldump轉儲要保持同步的表,檢查轉儲到git中,並在結帳時將其推回到數據庫中。

編寫一個shell腳本,它相當於:

mysqldump [options] database table1 table2 ... tableN > important_data.sql

創建或更新文件。 將該文件檢入git ,當數據發生重大變化時,您可以執行以下操作:

mysql [options] database < important_data.sql

理想情況下,最后一個將是一個git post-receive hook,所以你永遠不會忘記應用你的更改。

這就是你如何做到的。 我不確定你是否願意這樣做。 它似乎非常脆弱,尤其是 如果團隊成員1對感興趣的表做了一些費力的改動,而團隊成員2也在做同樣的事情。 其中一個是首先檢查他們的更改,最好的情況是你會有一些討厭的合並問題。 最糟糕的情況是,其中一人失去了所有的變化。

您可以通過始終在important_data.sql文件中進行更改來緩解這些問題,但這樣做的難易程度取決於您的應用程序。 如果你這樣做,你要玩的mysqldump ,所以你得到一個不錯的可讀性和選項git-可合並文件。

似乎dbdeploy正是您所尋找的

您可以將每個表導出為單獨的SQL文件。 只有在更改表格時才能再次按下。

如果您正在談論配置,那么我建議使用sql轉儲或類似方法根據Ray Baxters答案為數據庫設定種子。

既然你提到了Drupal,我猜這些數據與用戶/內容有關。 因此,您真的應該考慮擁有一個每個開發人員遠程連接的單個數據庫 - 即一個版本。 這是因為對mysql表的並發修改將非常難以協調(例如,兩個新用戶都使用user.id = 10,每個用戶發布post.id = 1,post.user_id = 10等新帖子)。

當然,使用sql轉儲(可能在版本控制中保留)來支持這一點可能是有意義的,以防一個開發人員意外刪除了一些關鍵的東西。

如果您只想要部分轉儲,PHPMyAdmin將會這樣做。 運行SELECT語句,當它顯示時,頁面底部會有一個導出鏈接( 頂部的那個鏈接就是整個表格)。

您可以對mysqldump文件進行版本控制,這些文件只是sql腳本,如前面的答案中所述。 根據您的意見,您的主要興趣似乎是讓開發人員擁有本地環境的基礎。

這是Drupal 6的一個優秀的ERD。我不知道你正在使用什么版本的Drupal,或者v6和v7之間是否有這些核心表的更改,但你可以使用轉儲或phpMyAdmin或其他任何其他方法檢查您可以使用的工具,可以讓您檢查數據庫結構。 Drupal ERD

基於ERD,Drupal安裝存在問題的數據位於users,user_roles和authmap表中。 有一種省略這些的快速方法,但重要的是要記住,添加的內容將與添加它的用戶有關系,如果用戶表中沒有與行對應的行,則Drupal可能會出現問題已被添加。

因此,要編寫mysqldump腳本,您只需排除問題表,或至少排除用戶表。

mysqldump -u drupaldbuser --password=drupaluserpw 0-ignore-table=drupaldb.user drupaldb > drupaldb.sql

您需要創建一個模擬用戶表,其中包含一組具有已知名稱/密碼組合的測試用戶,您只需要轉儲和版本一次,但理想情況下,您需要足夠多的這些用戶來匹配或超過真正的drupal用戶數量將會增加內容。 這只是為了使權限關系匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM