将数据库部署到 SQL Azure 时出错
Error deploying database to SQL Azure
我正在使用表单身份验证来处理用户并尝试将我的数据库部署到 SQL Azure,但收到此错误消息:
我使用的四个列出的唯一 table 是 aspnet_Membership
,我使用的另一个 table 是实现表单身份验证的 aspnet_Users
。什么是 TextInRowSize
,为什么 SQL Azure 关心它?我是否可以选择修改 aspnet_Membership
以使其兼容?
如果完全删除当前系统并用我自己的系统替换它会更容易,我也同意。
似乎 TextInRowSize 为较旧的 SQL 服务器类型(例如 text 和 ntext)存储大量数据。您需要将其类型更改为 nvarchar(max).
这里有一个link更详细的解释。
这看起来像是数据层应用程序框架中的一个错误。我可以建议一种解决方法,将您的数据库迁移到 Azure:
从命令行使用 SqlPackage.exe (https://msdn.microsoft.com/en-us/library/hh550080(v=vs.103).aspx) 提取包含所有 table 数据的 dacpac 文件。然后使用 SqlPackage.exe 将该 dacpac 文件部署到 Azure 中的数据库。提取命令类似于:
C:\>"c:\Program Files\Microsoft SQL Server0\DAC\bin\SqlPackage.exe" /a:extract /scs:"Data Source=yourSqlServer;Integrated Security=true;Initial Catalog=yourDatabase" /tf:C:\temp\mydatabase.dacpac /p:ExtractAllTableData=true
导入命令看起来像这样:
C:\>"c:\Program Files\Microsoft SQL Server0\DAC\bin\SqlPackage.exe" /a:publish /tcs:"Data Source=yourAzureSQLServer.database.windows.net;User Id=yourUserId;Password=yourPassword;Initial Catalog=yourDatabase" /sf:C:\temp\mydatabase.dacpac
这么快的建议,因为我看到你使用的是 V12,它现在应该支持这些属性。
首先确保您至少使用的是 SSMS 2014 SP1,其中包含许多使用 V12 的修复程序。其次确保安装 DacFX 的 2015 年 5 月更新(这是创建 bacpac 文件的程序),您可以在此处安装它:http://www.microsoft.com/en-us/download/details.aspx?id=46898
这应该让您获得 import/export 工作的最佳机会。
这已通过为数据库生成 SQL Azure 脚本并在 Azure 上生成 运行 来解决。这是我解决它的方法:
首先,打开 SQL 服务器,右键单击要传输的数据库,然后单击“任务 > 生成脚本...”
接下来,单击脚本选项面板上的“高级”并找到“数据库引擎类型的脚本”行。 Select“Windows Azure SQL 数据库”并单击“确定”(注意:如果您也有要传输的数据,请从“要传输的数据类型”中选择“模式和数据”脚本”选项)。
继续完成脚本生成对话框的其余部分,记住您保存脚本文件的位置。使用 SQL 服务器或 windowsazure.com 连接到您的数据库服务器。为您的新数据库生成一个新查询,输入由 SQL 服务器生成的脚本并执行。
我正在使用表单身份验证来处理用户并尝试将我的数据库部署到 SQL Azure,但收到此错误消息:
我使用的四个列出的唯一 table 是 aspnet_Membership
,我使用的另一个 table 是实现表单身份验证的 aspnet_Users
。什么是 TextInRowSize
,为什么 SQL Azure 关心它?我是否可以选择修改 aspnet_Membership
以使其兼容?
如果完全删除当前系统并用我自己的系统替换它会更容易,我也同意。
似乎 TextInRowSize 为较旧的 SQL 服务器类型(例如 text 和 ntext)存储大量数据。您需要将其类型更改为 nvarchar(max).
这里有一个link更详细的解释。
这看起来像是数据层应用程序框架中的一个错误。我可以建议一种解决方法,将您的数据库迁移到 Azure: 从命令行使用 SqlPackage.exe (https://msdn.microsoft.com/en-us/library/hh550080(v=vs.103).aspx) 提取包含所有 table 数据的 dacpac 文件。然后使用 SqlPackage.exe 将该 dacpac 文件部署到 Azure 中的数据库。提取命令类似于:
C:\>"c:\Program Files\Microsoft SQL Server0\DAC\bin\SqlPackage.exe" /a:extract /scs:"Data Source=yourSqlServer;Integrated Security=true;Initial Catalog=yourDatabase" /tf:C:\temp\mydatabase.dacpac /p:ExtractAllTableData=true
导入命令看起来像这样:
C:\>"c:\Program Files\Microsoft SQL Server0\DAC\bin\SqlPackage.exe" /a:publish /tcs:"Data Source=yourAzureSQLServer.database.windows.net;User Id=yourUserId;Password=yourPassword;Initial Catalog=yourDatabase" /sf:C:\temp\mydatabase.dacpac
这么快的建议,因为我看到你使用的是 V12,它现在应该支持这些属性。
首先确保您至少使用的是 SSMS 2014 SP1,其中包含许多使用 V12 的修复程序。其次确保安装 DacFX 的 2015 年 5 月更新(这是创建 bacpac 文件的程序),您可以在此处安装它:http://www.microsoft.com/en-us/download/details.aspx?id=46898
这应该让您获得 import/export 工作的最佳机会。
这已通过为数据库生成 SQL Azure 脚本并在 Azure 上生成 运行 来解决。这是我解决它的方法:
首先,打开 SQL 服务器,右键单击要传输的数据库,然后单击“任务 > 生成脚本...”
接下来,单击脚本选项面板上的“高级”并找到“数据库引擎类型的脚本”行。 Select“Windows Azure SQL 数据库”并单击“确定”(注意:如果您也有要传输的数据,请从“要传输的数据类型”中选择“模式和数据”脚本”选项)。
继续完成脚本生成对话框的其余部分,记住您保存脚本文件的位置。使用 SQL 服务器或 windowsazure.com 连接到您的数据库服务器。为您的新数据库生成一个新查询,输入由 SQL 服务器生成的脚本并执行。