我有一个现有的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;
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何将此表结构及其中的数据从MySQL迁移到Firebase?
我已经尝试通过查询将数据导出为JSON字符串,例如:
SELECT CONCAT("[",
GROUP_CONCAT(
CONCAT("{id:'",id,"',"),
CONCAT("word:'",word,"',"),
CONCAT("wordmeaning:'",wordmeaning,"',"),
CONCAT("wordlength:'",wordlength,"'}")
)
,"]")
AS json FROM dictionary;
Run Code Online (Sandbox Code Playgroud)
这给出了一个有效的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'}]
我将其保存在一个文件中,并尝试使用导入JSON按钮从Firebase导入文件,我得到了:解析JSON数据时出错.请验证您的输入.(JSON字符串有效.我在http://jsonviewer.stack.hu/查看了它)
关于我可能做错什么的任何想法?我假设Firebase可以处理这些结构及其中的数据.
谢谢.
Chi*_*ean 41
为了防止其他人在将来遇到这个问题,有一个更简单的方法来做到这一点.
您可以使用SQLYog之类的工具将MySQL表导出为CSV文件.
获得CSV文件后,您可以使用免费的在线工具将其转换为JSON格式,如下所示:http://www.convertcsv.com/csv-to-json.htm
我在大约15分钟内从MySQL导入了40个表到Firebase.希望有人帮助!
Fra*_*len 13
您的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"}]
Run Code Online (Sandbox Code Playgroud)
所以这些是变化:
您可能要考虑不引用的值id和wordlength,因为这些特性似乎是数字.
编辑
这两个在线工具似乎正确验证了JSON(或者至少符合Firebase的预期):
第二个也很漂亮地打印JSON,因此这可能是偏好其中一个的原因.
| 归档时间: |
|
| 查看次数: |
22411 次 |
| 最近记录: |