【问题标题】:Migrating data into Firebase from MySQL将数据从 MySQL 迁移到 Firebase
【发布时间】:2021-05-17 00:19:53
【问题描述】:

我有一个现有的 PHP/MySQL 应用程序,我正在尝试迁移到 AngularJS/Firebase,作为学习这些新技术的一种方式。

该应用在 MySQL 中有自己的表架构。一张这样的表看起来像:

CREATE TABLE `dictionary` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `word` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `wordmeaning` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `wordlength` int(11) unsigned NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

我的问题是:如何将此表结构及其中的数据从 MySQL 迁移到 Firebase?

我尝试通过如下查询将数据导出为 JSON 字符串:

SELECT      CONCAT("[",
          GROUP_CONCAT(
               CONCAT("{id:'",id,"',"),
               CONCAT("word:'",word,"',"),
               CONCAT("wordmeaning:'",wordmeaning,"',"),
               CONCAT("wordlength:'",wordlength,"'}")
          )
     ,"]") 
AS json FROM dictionary;

这给出了一个有效的 JSON 字符串,例如:

[{id:'1',word:'cat',wordmeaning:'一种哺乳动物',wordlength:'3'}, {id:'2',word:'弹射器',wordmeaning:'投掷器',wordlength:'8'}, {id:'3',word:'cart',wordmeaning:'用来装东西的东西',wordlength:'4'}]

我将其保存在一个文件中,并尝试使用 Import JSON 按钮从 Firebase 导入该文件,我得到:解析 JSON 数据时出错。请验证您的输入。 (JSON 字符串是有效的。我在http://jsonviewer.stack.hu/ 查过)

关于我可能做错的任何想法?我假设 Firebase 可以处理这样的结构和其中的数据。

谢谢。

【问题讨论】:

    标签: mysql firebase


    【解决方案1】:

    以防万一其他人将来遇到这个问题,有一种更简单的方法可以做到这一点。

    您可以使用 SQLYog 等工具将 MySQL 表导出为 CSV 文件。

    获得 CSV 文件后,您可以使用免费的在线工具将其转换为 JSON 格式,例如:http://www.convertcsv.com/csv-to-json.htm

    我刚刚在大约 15 分钟内将 40 个表从 MySQL 导入到 Firebase。希望对某人有所帮助!

    【讨论】:

    • 它确实帮助了某人! (2 年后)谢谢你
    • 将包含数千条敏感记录的 CSV 上传到第三方服务器是否安全?
    • 是的,我同意 Muhammad 的意见,将敏感数据上传到任何服务器可能不是最好的主意。
    • 您不需要使用在线转换器。从 CSV 文件读取数据并将其写入 JSON 在许多编程语言(如 JavaScript、Python 或 PHP)中几乎是一件微不足道的事情
    • 您没有将任何数据上传到 convertcsv.com - 所有处理都在您计算机上的浏览器中进行。
    【解决方案2】:

    您的 JSON 无效。将其更改为有效:

    [{"id":"1","word":"cat","wordmeaning":"a mammal species","wordlength":"3"},
    {"id":"2","word":"catapult","wordmeaning":"throwing device","wordlength":"8"},
    {"id":"3","word":"cart","wordmeaning":"something to carry things in","wordlength":"4"}]
    

    所以这些是变化:

    1. 使用双引号而不是单引号
    2. 在键周围加上(双)引号,而不仅仅是值

    您可能需要考虑不引用 idwordlength 的值,因为这些属性似乎是数字。

    编辑

    这两个在线工具似乎可以正确验证 JSON(或至少符合 Firebase 的预期):

    第二个也很好地打印了 JSON,所以这可能是偏爱其中一个的原因。

    【讨论】:

    • 谢谢你,弗兰克。我已经相应地修改了我的导出 SQL,现在导入工作正常。
    • 有什么方法可以将我的整个 SQL 数据库导出到 Firebase?我有大约 4 张桌子。
    【解决方案3】:

    表格数据导出向导支持以 JSON 格式导出数据

    1. 右键单击表名并选择表数据导出向导

    1. 选择要导出的列值,然后在以下屏幕中可以选择将数据导出为 csv/json

    【讨论】:

      猜你喜欢
      • 2015-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-10
      • 2012-05-14
      • 2021-05-15
      • 2011-02-17
      • 2016-11-20
      相关资源
      最近更新 更多