【问题标题】:Change database after scaffolding to local database脚手架后更改数据库到本地数据库
【发布时间】:2019-08-06 16:08:13
【问题描述】:

我根据this教程创建了脚手架项目

有写

For local development, the ASP.NET Core configuration system reads the connection string from the appsettings.json file.

将此本地数据库(*.mdf 文件)更改为“全局”数据库(例如安装在网络上的 MSSQL 服务器)的正确程序是什么?

【问题讨论】:

  • 对你来说全局是指不在你正在开发的同一台电脑上的远程电脑?
  • @AntoniosKatopodis 不在同一台电脑上。与本地数据库文件(mdf 扩展名)相反。例如MSSQL Server 或 Mysql 或 PostgreSQL 中的数据库

标签: asp.net-core asp.net-core-mvc scaffolding localdb mdf


【解决方案1】:

脚手架与数据库是本地还是远程无关,当然假设它们共享相同的架构。如果远程数据库架构不同,您只需要重新脚手架,这是您需要为架构的任何更改执行的操作。

您真正拥有的只是一个连接字符串。连接字符串恰好指向本地数据库。要指向远程数据库,您只需将连接字符串更改为该远程数据库的信息。就您的应用而言,本地或远程毫无意义;它只是连接到你告诉它连接的任何东西。

默认情况下,连接字符串存在于appsettings.json 中。要更改它,您可以直接在 appsettings.json 中更改它,也可以使用其他配置源(例如特定于环境的 JSON(即 appsettings.Production.json)、环境变量、命令行参数等)覆盖它。

但是,连接字符串将包含敏感信息(用户/密码),因此它是一个秘密。因此,您不应该将任何真实的数据库信息存储在 JSON 之类的内容中,这些信息未加密,并且将提交给源代码管理。相反,您应该使用应用程序代码外部的配置源(例如服务器上的环境变量),最好使用静态数据加密的东西(例如 Azure Key Vault)。在开发中,您还可以使用用户机密。它只是另一个 JSON 源,因此仍未加密。但是,它存储在您的项目之外,因此至少不会出现在您的源代码管理中。

【讨论】:

  • 所以这意味着我将更改我的连接字符串然后运行迁移,数据库将根据连接字符串指向的模型从模型中创建?能否为 MS SQL 服务器的连接字符串做一个通用示例(格式)?
  • 如果你正在搭建你的数据库,这意味着你有一个现有的数据库,在这种情况下你不应该生成迁移。如果您需要更改数据库架构,您可以手动或通过 SQL 脚本在数据库中进行更改,然后从现有数据库中重新构建实体类/上下文。
  • 默认连接字符串(本地)已经是 SQL Server 的格式。 LocalDB 是一个 SQL Server Express 实例。
  • 我有一个模型,脚手架从中创建了一个数据库(mdf 文件),现在我想在 MS SQL 服务器的 mdf 文件中创建相同的表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-21
  • 1970-01-01
  • 1970-01-01
  • 2019-06-12
  • 1970-01-01
相关资源
最近更新 更多