问题标签 [schema-migration]
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.
django - South SchemaMigration 类中模型属性的用途是什么?
在 South manage.py schemamigration 生成的每个迁移文件中,通常都会有一个 south.v2.SchemaMigration 的子类。该类将包含 forwards() 和 backwards() 方法以及模型属性。South 如何使用模型属性?
database - 将 Django 模型从一个应用程序移动到另一个应用程序
我犯了在同一个 Django 应用程序中创建太多模型的愚蠢错误,现在我想将它分成 3 个不同的模型。问题是:两个客户的站点中已经有生产数据,所以我需要仔细计划要完成的任何模式/数据迁移(我正在使用 django-south)。我不确定如何进行,任何建议将不胜感激。
(如果有任何相关性,我在 Ubuntu 服务器 12.4 LTS 上使用 PostgreSQL)
我考虑过使用db.rename_table
,但无法弄清楚如何正确更新这些模型的外键(从旧到新) - 在数据库级别无关紧要(因为表重命名已经涵盖了),但在 ORM 级别并非如此.
更新:经过思考,并在programmmers.SE上提出这个问题后,我决定保持简单,不用担心产品主要版本之间的迁移。短期内,我将只使用db.rename_table
匹配新名称,同时也db_table
按照 Daniel Roseman 的建议使用,同时将模型保留在旧应用程序中。升级到主要版本时,我切换到新应用程序并完全放弃所有迁移(因此新版本的全新安装将“按原样”创建数据库,而不是经历所有历史迁移)。
django - 使用南迁移将 DB 更新到 heroku 时出现问题
我有一个 Django proyect 在 heroku 中运行了一段时间,问题是,树几天前,我尝试更新我的模式模型,但是,每次我写
heroku 一直告诉我一切都是最新的,但我已经更改了我的 models.py 文件夹并像往常一样运行模式迁移。
如果您知道为什么会发生这种情况,或者我如何强制将架构迁移到我的 heroku 应用程序,请告诉我如何操作。
ps:hole数据库无法删除,因为heroku中存储的数据和我本地服务器数据库中存储的数据不一样,我不想丢失用户的数据
google-app-engine - 暂时禁用我的 Google App Engine 应用以执行架构迁移的推荐方法是什么?
我想禁用用户对我的应用程序的访问,以便我可以执行架构迁移。我研究了一些可能性并发现了可能的缺点:
禁用数据存储写入 - 我宁愿关闭我的整个应用程序,这样人们就不会看到任何错误等。此外,我认为禁用写入会阻止我执行迁移。
禁用应用程序 - 我不清楚这是否只会对我的用户禁用它,从而使我无法执行迁移。我也不确定禁用/启用周转时间。
将我的域名重定向到一个临时页面 - 我的应用仍然可以在 appspot.com 上访问
上传我的应用程序的新版本,除了指向“暂时关闭”页面之外,它不响应请求。
有什么建议么?
database - 如何转到旧版本的架构?
我在 Heroku 中有一个 Postgre SQL 数据库。我遇到了一些问题。我需要删除一些本地迁移文件并创建包含所有迁移的全新架构迁移文件(有效)。
我的 Heroku 数据库中已经存在来自这个新模式迁移文件的关系,当我尝试迁移时,出现此错误:
我怎样才能让 Heroku 真正进行迁移?或者我怎样才能让它转到不存在该关系的先前版本,所以我可以毫无问题地迁移?
core-data - UIManagedDocument documentState == 5,未定义状态常量
在使用 Core Data 时,我发现我的UIManagedDocument
对象的 adocumentState
等于 5。UIDocument
文档只定义了这些常量:
这将是 0、1、2、4 和 8。5 可能是使用的特殊状态UIManagedDocument
,但我在任何地方都找不到它的记录。当核心数据模式发生变化时,状态似乎发生了。我不知道国家是什么意思。我通常会收到错误:Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'This NSPersistentStoreCoordinator has no persistent stores. It cannot perform a save operation.'
,这是有道理的,因为文档需要以正常状态打开才能用作持久存储。
现在我只是检查状态是否等于 5 并删除持久存储并在发生这种情况时重新创建它。但是一旦我的应用程序上线并存储用户数据,我就不想这样做了。managedDocument.documentState == 5
我还没有研究过迁移核心数据模式的最佳实践,但在我的代码中进行检查似乎也有点混乱。在任何地方都没有关于此文档状态的任何文档吗?
更新:现在我正在查看它,这是有道理的,这些常量被定义为它们的方式的原因是它们可以按位或一起作为掩码。因此,documentState
等于 5 意味着它既是UIDocumentStateClosed
也是UIDocumentStateSavingError
。不过,这些错误非常普遍。我将如何缩小根本原因?
此外,我看到的所有用于检查这些文档状态的示例代码都显示检查是否相等, ie if (managedDocument.documentState == UIDocumentStateClosed)
,但这意味着这是不正确的,应该使用按位与检查,即 ie if (managedDocument.documentState & UIDocumentStateClosed)
。
python - django 使用 mysql 后端将 datetimefield 转换为 datefield
对于我的 django 应用程序,我想将 datetimefield 转换为 datefield。这导致错误:
你能告诉我怎么做吗?
我试过这个:
我在 schemamigration 之前编写了一个数据迁移,它将 datetimefield 的值从 datetime 修改为 date 。
mysql - 外键上的教义模式更新失败
我正在尝试使用该app/console doctrine:schema:update --force
命令进行架构更新,但 Doctrine 在以下部分失败:
根据另一个 SO question ,这很容易解决。该表有:
所以这可以通过删除匹配约束来手动解决。但是有没有办法自动做到这一点?
django - Django 是否原生支持迁移
我听说所有新的 Web 框架,如 ROR、Django 等,都遵循敏捷和 TDD 的一般原则。遵循敏捷和 TDD 的一部分是在从一次迭代到另一次迭代时构建自己的设计。这意味着模型及其架构将随着应用程序的不同版本而发展。我知道 ROR 本身就支持模式迁移,但是我不确定 django。我主要关心的是如何预先决定所有与架构相关的问题。它不是回到瀑布式的设计理念吗?
我也知道有像“南”这样的外部包用于模式迁移。但是这个问题实际上是关于询问为什么 django 不支持像 ROR 这样的本地迁移