【问题标题】:exporting and importing data from one user installation to another将数据从一个用户安装导出和导入到另一个
【发布时间】:2011-11-04 16:48:40
【问题描述】:

我想为用户提供将数据从一个 WordPress 插件安装从一个站点导出到另一个站点的功能。 “WordPress 插件”并没有什么不同,我对在 PHP 应用程序中导出/导入数据的推荐方法感兴趣,该应用程序将数据存储在 MySql 数据库中。数据在数据库中是相互关联的。

我感兴趣:

  • 在导出的文件(JSON、Xml、序列化)中推荐的数据存储格式是什么?注意数据是通过每个 MySql 表中的字段相互关联的,这可能非常大。

例子:

学生表有 ID、Name 和 Class_ID...

类表有一个ID,Description...

  • 有哪些建议可以避免特定用户的托管配置问题,这些问题可能会影响大量数据的导出或导入?

示例:执行时间、最大文件大小、允许的最大数据库查询数


重要的是要注意目标系统可能已经在声明为键的字段中具有相同值的数据,例如:

我使用导出类

ID = 5,描述 =“这是很酷的课程”

并且在目标数据库中可能已经是具有以下内容的类:

ID = 5,描述 =“这是另一个旧类”

其中 ID 是“类”表中的主键。


对此的任何想法将不胜感激。 如果需要其他信息,请告诉我。

【问题讨论】:

  • 使用 mysqldump。它将数据库的内容导出为一系列 SQL 查询,这些查询将重新创建表和数据,就像它们在创建转储的服务器上一样。您可以将该转储文件提供给新服务器上的mysql 命令,然后繁荣...(最终)数据库的即时副本。所有数据/键/触发器/表结构/等...重复。
  • 谢谢,但这并不能解决目标系统已经在声明为键的字段中具有相同值的数据的情况。我用这个案例更新了我的问题。
  • 那么您唯一的选择是手动处理数据以防止任何密钥冲突。
  • 谢谢,您推荐哪种格式? XML、JSON、序列化数据?

标签: php mysql import export


【解决方案1】:

我建议您将数据写入 XML。这意味着您必须在导出时构建 XML,然后您必须在输入时读取 XML 文件。这样,您可以控制格式,并且可以更改处理插件版本之间导入的方式。

如果您需要,我可以添加有关如何执行此操作的更多详细信息,但看起来您只是在寻找有关一般方法的信息。

【讨论】:

  • 谢谢,为什么你认为 Xml 会比 JSON 更好,或者只是序列化数据?我同意 Xml 允许我像 @marc-b 所说的那样“按摩”数据。
  • JSON 也可以很好地工作,因为您可以构建数据。我更喜欢 XML,但是现在有足够的工具来操作 JSON,因为它们是等效的。我肯定会回避数据库转储,因为如果您在版本之间更改数据库架构,这将成为问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多