簡體   English   中英

多數據庫架構遷移(php/mysql)

[英]Multi database schema migration (php/mysql)

我有一個應用程序,每個用戶都有自己的數據庫並共享相同的模式。 (我有另一個線程討論這個,所以我不需要任何信息)

遷移數據庫時,我編寫了如下所示的腳本:

<?php
$sql = <<<SQL
ALTER TABLE xyz....;
ALTER TABLE abc.....;
SQL;
$sql_queries = explode(";", $sql);
$exclude_dbs = array();

$conn = mysql_connect("localhost", "USER", "PASSWORD");
$show_db_query = mysql_query('SHOW databases');
$databases = array();
while ($row = mysql_fetch_assoc($show_db_query))
{
        if (!in_array($row['Database'], $exclude_dbs))
        {
                $databases[] = $row['Database'];
        }
}

foreach($databases as $database)
{
        mysql_select_db($database, $conn);
        echo "Running queries on $database\n***********************************\n";
        foreach($sql_queries as $query)
        {
                if (!empty($query))
                {
                        echo "$query;";
                        if (!mysql_query($query))
                        {
                                echo "\n\nERROR: ".mysql_error()."\n\n";
                        }
                }
        }
        echo "\n\n";
}
?>

它一直運行良好,沒有任何問題。 然后我使用stepancheg / mysql-diff來確保數據庫模式是好的。

遷移數據庫時我應該做些什么? (我也事先在登台服務器上進行了測試)

您的方法似乎有效,並且 mysql-diff 的使用很好。 您是否考慮過使用mysqldump備份實際數據? 這是一種比自定義腳本更傳統的方法。

暫無
暫無

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

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