0

我的博客有两个版本:第一个是用 PHP 编写并使用 MySQL,但第二个是新版本,是用 Python 编写并使用 Postgres。

我的目标是将数据从一个移动到另一个。表名和架构更改。

我的想法是为旧站点制作 ORM 模型,并使用循环,使用 ORM 获取数据并将其放入新数据库中,因为我的新站点也有 ORM 模型。

它看起来像:

old_articles = OldArticle.objects.all()
for old_article in old_articles:
    new_article = NewArticle()
    new_article.title = old_article.name
    new_article.content = old_article.body
    new_article.save()

ORM 可以轻松抽象出数据库之间的差异,在我看来,这实际上可以工作!或者没有,有更好的方法吗?

4

2 回答 2

1

如果这种迁移只进行一次,我不会采用 ORM 方式。可以从 MySQL 导出符合标准的 SQL 转储,并且可以轻松地将转储导入 PostgreSQL。数据在 PostgreSQL 中后,运行迁移查询以更改方案或使用临时“导入”表并将数据复制到新方案/布局中的表中。

测试所有迁移查询并编写一个场景,其中包含要执行的所有步骤、要运行的查询以及运行顺序。还包括需要执行的手动步骤。

一旦您确定迁移方案正确并经过全面测试,请将您的旧博客置于“维护模式”(抱歉,我们处于离线状态,我们很快就会回来)并真正做到这一点!

最重要的是:测试你的场景,验证结果,慢慢来,你不应该着急做这些事情!

于 2013-02-02T00:09:05.480 回答
1

有很多图书馆可以做这种事情。我会坚持一些已经实施并经过良好测试的东西。这是一个指向 postgres wiki 的链接,其中列出了用于执行此操作的工具列表。

http://wiki.postgresql.org/wiki/Converting_from_other_Databases_to_PostgreSQL

于 2013-02-01T20:52:03.500 回答