问题标签 [database-versioning]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
44 浏览

plsql - 有效约会plsql包

我们广泛使用 PLSQL 包进行报告。我们需要在每年年初更改这些报告生成包。我正在寻找一种方法来在需要进行验收测试之前交付 2014 年的更改(并保持事情顺利进行,而不是同时交付多个)。

我们希望同时在 db 上安装 2013 和 2014 包,并使用有效约会来确定如果可能的话。这可能吗?有没有其他方法可以接近。由于各种原因,很难使用需要以不同名称或 API 存储这些包的解决方案。

0 投票
2 回答
1561 浏览

mysql - 数据不是模式的数据库版本/更改控制?

在这里和周围阅读了几篇文章后,我意识到开发团队中的数据库版本控制实际上非常重要。

dump whole database到现在为止,每次有更新时我一直使用一个简单的,如果只有一个表被更改,有时我们可以通过转储单个表然后重新导入来逃脱。不是最好的,但效果很好,对于附加更改,我们还没有遇到任何问题。

现在,我.mwb (Mysql Workbench diagram)在我正在处理的项目的 git 存储库中保存了一个文件。然后我还使用dbv forschema management和 git,每个分支都根据项目命名,并且运行良好。这使我能够对原理图更改进行版本化,并能够恢复或回滚。

但是,表中包含的数据呢?如何保持这种状态?也许我最好还是坚持旧方法。我了解具有相同数据库结构但数据不同的项目,这很好,但是具有需要版本控制和管理的特定数据库数据的站点呢?

另外,需要更改数据库的已部署站点的基础又如何呢?这怎么可能是无缝的。有些人建议使用更新/更改脚本,并且可以很好地使用默认值等。但是,如果我在一个网站平台上进行了更改,需要更改每个网站数据库并保持数据完整,该怎么办?

0 投票
1 回答
145 浏览

indexing - 在 neo4j 2.0 中创建复合唯一约束

我正在使用 neo4j 创建版本化图形数据库,但在数据库中实现唯一约束时遇到了一些麻烦。

我想知道是否可以做类似的事情

或者关于如何在 neo4j 中为版本化数据库实施唯一性约束的任何其他想法。

0 投票
1 回答
268 浏览

ef-code-first - 代码优先迁移 - 如何回滚第一次迁移

使用代码优先迁移,使用 -TargetMigration [MigrationName] 迁移到任何给定的迁移都是微不足道的。

但是如何回滚到第一次迁移之前呢?你的目标是什么迁移?第一次迁移有一个 Down() 就像其余的一样,逻辑是合理的 - 但我如何让它通过 update-database 命令执行?

0 投票
1 回答
1309 浏览

java - 管理 JPA 实体的历史数据的框架

大约 1 或 2 年前,我偶然发现了一个可以管理 JPA 数据库数据的旧版本的框架。对于每个托管表 TABLE_T,它将创建一个表 TABLE_VERSIONED_T,并且每当 TABLE_T 中的数据发生更改时,都会在 TABLE_VERSIONED_T 中创建一个条目。

现在我无法记住框架的名称或在网络上找到它。我浏览了其他一些与这个主题有关的问题,但没有一个提到框架。

有什么想法吗?

0 投票
1 回答
444 浏览

nosql - 是否可以将 ArangoDB 配置为在特定时间制作图形数据库的快照?

到目前为止,我知道 ArangoDB 使用 MVCC,因此它会在未定义的时间段内创建节点和边的修订,直到垃圾收集器将它们删除。

我想实现一个图形数据库模式,我需要在特定时间保持这个数据库的状态。这意味着我将配置数据库管理系统拍摄状态快照的时间(例如每周)。

所以我的问题简而言之:是否可以将节点/边缘的修订/版本保留在 arangodb 中(或者可能使用插件)以及它们的创建时间戳?

如果没有,是否有其他图形数据库能够做到这一点?

0 投票
1 回答
2805 浏览

node.js - 使用 mongoose 和 mongoose-version 更新条目时的新版本

我正在尝试使用 mongoose 跟踪 mongo 数据库中某些文档中的所有修订。出于这个原因,我决定使用插件 mongoose-version。

当我创建一个新文档并将其添加到数据库中时,我可以看到一个版本保存在存储不同版本的集合中。但是,当我使用新文档更新文档时,我可以看到存储文档(最新版本)的集合中所做的更改,但看不到存储在版本化数据库中的新版本。任何线索为什么会发生这种情况?

这是我的架构:

这就是我创建用户的方式:

这就是我更新用户详细信息的方式(本质上只有名称可以更改,但在我学习时仅用于演示目的)。

任何帮助或提示将不胜感激,因为我也是使用 mongo 和 mongoose 的新手。

0 投票
1 回答
707 浏览

android - 同时拥有多个不同的 SQLite 数据库版本是否应该被认为是有害的?

我将每个 SQLite 表的代码(包括表的初始构造以及对该表的操作)分解为扩展 SQLiteOpenHelper 的单独类。

为了创建这些表(也就是说,要调用 onCreate() 方法),我必须增加 DATABASE_VERSION (有关详细信息,请参见我自己的答案)。

但是使用这种方法,我最终会为每个类/表设置不同的版本号——我必须将我创建的第二个表的 DATABASE_VERSION 值设置为 2,我必须将第三个表设置为 3,等等。

所以我最终会为同一个数据库(*.db 文件)提供多个不同的版本值。如果它们都是相同的 val,则不会调用 onUpgrade() 方法,因此不会调用 onCreate() 方法,因此不会创建新表。

这是“好的” - 拥有一个具有多个不同同时版本号的数据库吗?

我知道的唯一其他(合理)选项是将所有数据库代码(涵盖多个表)放入扩展 SQLiteOpenHelper 的单个类中 - 这样做实际上是首选方法吗?IOW,我将数据库代码分成几个类,每个表一个类,是帮助还是障碍?

更新

所以这是我的非破坏性方式(通过在 DDL 中插入“IF NOT EXISTS”)逐步添加新表,根据 CommonsWare 的建议,只使用一个扩展 SQLiteOpenHelper 的类:

注意:每当我添加一个新表时,我必须“增加”(增加)DATABASE_VERSION 值,以便调用 onUpgrade()/onCreate()。

0 投票
2 回答
6228 浏览

liquibase - 有没有办法以正确的顺序生成 Liquibase 数据?

我正在使用 Liquibase 对现有数据库进行版本控制,所以我正在使用

用于生成变更集 xml。

这可行,但问题是当我尝试运行那些生成的变更集时。我明白了

无法添加或更新子行:外键 ...',因为更改集的导出顺序未考虑外键。

我的问题是:是否有命令选项或可以按正确顺序生成变更集的东西,或者我应该手动重新排序变更集以获得所需的结果?

更新:

通常,外键应该是并且是在外键之后创建的。但是,在我们的系统中,核心应用程序创建了数据库的结构,并且多个客户端应用程序在同一个数据库中使用它们自己的私有数据填充数据库。而当我们生成数据时,数据变更集是按照数据库中表的字母顺序生成的,这可能是外键约束。我们设法手动安排变更集,但我想知道对于这种特殊情况是否有更好的解决方法。

0 投票
1 回答
60 浏览

build - 使用持续集成时的数据库版本控制

我有一个奇怪的情况,其中至少有 4 个不同的应用程序使用了一个 SQL 服务器数据库,并且有 4 个不同的团队在处理这些应用程序中的每一个。

我们计划在所有这些开发团队中使用 TFS 2012 进行持续集成。

现在管理这些应用程序的代码没有问题,问题在于管理数据库更改和维护版本。 然而,主要挑战是每个团队都可以在同一个数据库上拥有自己的一组更改。

目标是在给定的点上,我应该能够为所有 4 个应用程序收集工件(用于 Web 和数据库更改)并将它们部署到登台或生产环境。

请指教!