2014-07-20 94 views
1

我有一個Rails應用程序,最初我在SQL Server本地數據庫設置。最近,我將其移至Azure SQL Server,並且剛剛在本地複製了更改。當我將數據庫導入所有表和數據複製下來時,但似乎我所有的主鍵和索引都消失了。是否可以運行rake命令或rails命令來添加這些鍵/索引?在Rails中,我怎樣才能恢復我的表的索引?

+0

你是如何恢復數據庫的? – vee

+0

vee,通過SSIS使用導入數據從我創建的新數據庫的上下文菜單中。然後,我使用ADO.net連接字符串連接到數據庫,並使用嚮導的其餘默認值。 – daveomcd

+0

我沒有一個Azure SQL服務器來測試這個,但是你可以使用SQL Server中'All Tasks'菜單中的'backup'和'restore'。導入/導出數據不包含密鑰和索引。 – vee

回答

0

我最終從Azure數據庫創建了一個bacpac文件,並將其作爲SQL Server中的數據層應用程序導入。

創建BACPAC文件

  1. 轉到您的Azure的門戶網站。
  2. 從菜單中選擇「存儲」並創建一個新存儲。我只是給它一個網址,並點擊創建存儲帳戶。創建新存儲需要一分鐘時間。
  3. 創建存儲後,轉到SQL數據庫。打開您希望創建bacpac文件的數據庫,然後在門戶的底部選擇「導出」。然後按照導出嚮導,選擇您的存儲帳戶並提供您的憑據。

SSMS導入數據層應用程序

  1. 右鍵單擊對象資源管理器的連接在你的數據庫文件夾。

  2. 單擊「導入數據層應用程序」並按照嚮導進行操作。當您進入「導入設置」時,選擇您從Azure門戶下載的bacpac文件。

0

你可能有一個自動生成的SQL腳本文件(通過rake db:create,rake db:migrate)等,這個文件通常在'db/structure.sql'中可用。您可以運行該腳本 - 您可能需要手動刪除CREATE TABLE語句,但保留ALTER SEQUENCE,ALTER TABLE,CREATE INDEX語句。