为啥我的数据库项目升级脚本包括从引用的数据库项目中重构?

     2023-03-23     19

关键词:

【中文标题】为啥我的数据库项目升级脚本包括从引用的数据库项目中重构?【英文标题】:Why is my database project upgrade script including refactoring from referenced database projects?为什么我的数据库项目升级脚本包括从引用的数据库项目中重构? 【发布时间】:2014-06-25 13:16:25 【问题描述】:

希望这会有意义..

我们有很多数据库项目,用于维护架构和生成升级脚本。为了生成升级脚本,我们使用自动构建引擎,该引擎使用 SqlPackage.exe 将数据库项目与“模式模板”进行比较,“模式模板”是实时数据库的副本,但没有数据。

其中一个数据库引用了其他三个数据库项目。

最近,我们发现在为该数据库项目生成升级脚本时,它包括重构参考项目之一中的表的 SQL,而不是相关项目中的表。

所以升级脚本包含两段SQL:

    在开头打印语句,说明架构对象不会被重命名。 一堆插入语句到 __RefactorLog。

问题是双重的:

    这些重构不应包含在此升级脚本中;它们属于引用的数据库项目之一 - 它们与这个无关。 因为这个数据库不需要重构,所以它没有名为 __RefactorLog 的表,因为升级脚本不需要创建它。这会导致构建失败。

我查看了数据库项目设置,看不出引用数据库项目中的重构会包含在引用项目中的任何原因。

有什么想法吗?

更新 - 缺少的 __RefactorLog 表是一个红鲱鱼。由于某种原因,它包含在模式模板中,但不在实时数据库中,因此 SqlPackage 假定它不需要创建它。但是,我仍然很想知道为什么来自引用数据库项目的所有重构都包含在有问题的项目中。

【问题讨论】:

【参考方案1】:

这是 SSDT 中的一个错误 - 有一个 Connect bug 跟踪此问题。请注意,对于“相同数据库”引用,重构日志应该被包括在内。这是因为所有对象都将被推送到一个数据库。错误是“不同数据库”引用的重构日志包含不正确,我猜这就是您遇到的问题。

【讨论】:

谢谢凯文 - 这正是它的样子。

为啥我的项目引用指向“obj”目录中的 dll?

】为啥我的项目引用指向“obj”目录中的dll?【英文标题】:Whydoesmyprojectreferencepointtoadllinthe"obj"directory?为什么我的项目引用指向“obj”目录中的dll?【发布时间】:2016-10-2907:11:50【问题描述】:我正在向一个项目添加项... 查看详情

Visual Studio 2012 数据库项目中未解决的引用

】VisualStudio2012数据库项目中未解决的引用【英文标题】:UnresolvedReferenceinVisualStudio2012DatabaseProject【发布时间】:2013-06-1914:10:52【问题描述】:有没有办法从我的数据库项目中引用另一个数据库而不直接引用它?例如,我希望能... 查看详情

我可以从 VS 数据库项目的部署后脚本中调用不同的 SQL 脚本吗

】我可以从VS数据库项目的部署后脚本中调用不同的SQL脚本吗【英文标题】:CanIcalldifferentSQLScriptsfromwithintheVSDatabaseproject\'spost-deploymentscript【发布时间】:2012-10-0906:05:54【问题描述】:我对基线数据库的许多表进行了大量插入操... 查看详情

如何使用java脚本中的按钮从json数据中删除特定项目

】如何使用java脚本中的按钮从json数据中删除特定项目【英文标题】:Howtodeleteaspecificitemformjsondatabyusnigabuttoninjavascript【发布时间】:2018-11-1520:13:00【问题描述】:如何使用javascript从JSON中删除特定项目A主要是我想删除Mon->点击... 查看详情

Cocoapod:为啥 Xcode 构建过程试图找到已经从我的项目中删除的库

】Cocoapod:为啥Xcode构建过程试图找到已经从我的项目中删除的库【英文标题】:Cocoapod:WhyXcodebuildprocesstrytofindthelibrarywhichhasbeenalreadyremovedfrommyprojectCocoapod:为什么Xcode构建过程试图找到已经从我的项目中删除的库【发布时间】:2... 查看详情

为啥更改不会反映在我的 Xamarin.Forms 项目或 SQLite 数据库中

】为啥更改不会反映在我的Xamarin.Forms项目或SQLite数据库中【英文标题】:Whywon\'tchangesreflectinmyXamarin.FormsprojectorSQLitedatabase为什么更改不会反映在我的Xamarin.Forms项目或SQLite数据库中【发布时间】:2021-07-1500:05:00【问题描述】:更... 查看详情

为啥我不能引用将惯性js添加到我的项目的应用程序布局文件?

】为啥我不能引用将惯性js添加到我的项目的应用程序布局文件?【英文标题】:WhyIcannotreferenceapplayoutfileaddinginertiajstomyproject?为什么我不能引用将惯性js添加到我的项目的应用程序布局文件?【发布时间】:2022-01-2216:32:03【问题... 查看详情

SSDT 数据库项目中对系统数据库的引用变得重复

】SSDT数据库项目中对系统数据库的引用变得重复【英文标题】:ReferencetosystemdatabasesbecomesduplicatedinSSDTdatabaseproject【发布时间】:2020-09-1115:06:41【问题描述】:在一个包含大量项目和引用的大型SSDT数据库解决方案中,我正在将我... 查看详情

为啥要把sql脚本放在java项目下?

...sql脚本放在java项目下?有什么用啊?为什么不把生成的数据库文件放在java项目下呢?求详解……1.为什么不把生成的数据库文件放在java项目下呢?这样做当然可以,没什么不对的。这样,是把数据据的表结构已经定义好了,以... 查看详情

为啥我的夹具没有安装在 django 项目上?

...:我通过以下命令在我的django项目中使用固定装置创建了数据库备份:-pythonmanage.pydumpdata>db.json当我加载夹具时,出现以下错误:-django.db 查看详情

Android,如何从我的数据库更新列表视图中的选定项目?

】Android,如何从我的数据库更新列表视图中的选定项目?【英文标题】:Android,HowdoiUpdatetheselectediteminmylistviewfrommydatabase?【发布时间】:2015-05-1711:10:54【问题描述】:这是我目前的代码,但是当我按下更新按钮时应用程序崩溃了... 查看详情

解决方案中从一个项目到另一个项目的数据传输

】解决方案中从一个项目到另一个项目的数据传输【英文标题】:DatatransferfromonetoprojecttoanotherinaSolution【发布时间】:2021-08-1906:52:44【问题描述】:我有一个包含多个项目的C#解决方案。有一个名为Console的项目作为服务运行,该... 查看详情

Python 在另一个脚本上引用数据库连接

】Python在另一个脚本上引用数据库连接【英文标题】:Pythonreferencingdatabaseconnectiononanotherscript【发布时间】:2017-09-1014:16:54【问题描述】:我正在深入学习Python,同时尝试使用存储在MySQL/MariaDB上的数据创建应用程序,并且我几乎... 查看详情

从 SQLite 数据库中检索特定项目

】从SQLite数据库中检索特定项目【英文标题】:RetrievingaspecificitemfromSQLitedatabase【发布时间】:2014-05-1107:01:08【问题描述】:我这里有一个损坏的函数代码,它会,我的问题是我想将检索到的项目的值传递给displayContent但我不知... 查看详情

为啥我从 MySQL 查询中得到重复的项目?

...:28:34【问题描述】:我正在使用对PHP文件的Ajax调用从MySQL数据库中获取数据并在HTML中填充选择选项。问题是选项中的重复项目,我不知道为什么。我在工作台中尝试了查询,它带回了我需要的东西。PHP文件:&l 查看详情

如何从我的 asp.net 数据库中删除项目

】如何从我的asp.net数据库中删除项目【英文标题】:HowcanIdeleteitemsfrommyasp.netdatabase【发布时间】:2016-04-2201:39:20【问题描述】:我正在试用asp.net,但我被System.Data.Entity.Infrastructure.DbUpdateConcurrencyException难住了。异常发生在我尝... 查看详情

为啥不能在 C# 中删除未使用的引用

】为啥不能在C#中删除未使用的引用【英文标题】:WhyisitnotpossibletoremoveunusedreferencesinC#为什么不能在C#中删除未使用的引用【发布时间】:2011-02-1810:03:56【问题描述】:VisualStudio是否有任何理由无法删除C#和C++项目中未使用的引... 查看详情

我从别人那里拷贝来一个c#的项目,但是没有拷贝数据库文件。为啥这个项目也能正常增删改查?

参考技术A没有用到数据库,或者自动创建了数据库,或者数据库在远端 参考技术BVS安装的时候附带安装了叫localdb的数据库,运行的过程中可能会创建数据库。比如entityframeworkcodefirst就是这样运行的本回答被提问者采纳 查看详情