ctf0 / mysql-to-mongodb
此包已被放弃,不再维护。未建议替代包。
控制台命令,帮助将数据从mysql迁移到mongodb。
v1.0.2
2018-05-05 15:44 UTC
Requires
- php: >=5.5.9
- illuminate/support: ^5.1
- nesbot/carbon: ~1.20
Suggests
- jenssegers/mongodb: >=2.2.0
- moloquent/moloquent: dev-master
This package is auto-updated.
Last update: 2023-01-03 23:18:55 UTC
README
我制作这个工具是因为我开始学习mongodb,而且找不到任何合适的替代品。
工具按预期工作,甚至在使用mysql的实际应用程序上进行了测试,但我强烈建议您使用这个包时谨慎行事。
安装
-
composer require ctf0/mysql-to-mongodb
-
(Laravel < 5.5) 添加服务提供者
'providers' => [ ctf0\MysqlToMongoDb\MysqlToMongoDbServiceProvider::class, ]
用法
mongo:migrate # clone mysql data to mongodb mongo:migrate:pivot # resolve pivot foreign ids (ManyToMany) mongo:migrate:relation # resolve foreign ids (OneToMany) mongo:migrate:cleanup # remove un-wanted field/collection from the db mongo:migrate:maintain # backup/restore mongo db (mongodump / mongorestore)
注意
-
如果您尚未安装mongodb,请检查http://wp.me/p4DYee-9Q
-
确保您可以通过laravel连接到两个数据库,没有任何问题。
-
该包假设您的mysql驱动连接是
mysql
,而默认驱动连接是mongodb
。 -
该包不会重新创建mysql的表类型,这一点由mongodb决定,但是目前以下类型在迁移时会被转换:
-
tinyint(1) > bool
-
timestamp > date
-
multi(OneToMany) > index
-
unique > index/unique/sparse
如果两个字段在两个不同的集合中具有相同的名称,将引发错误,因此作为替代方案,索引被保存为(CollectionName_field)
-
-
您所有对
id
的调用都应该改为_id
,除了在视图中,它将通过模型自动转换为。 -
moloquent
使用string
进行关系链接/引用,因此当将foreign_ids转换为ObjectId
时,现在您将有一侧是string
,另一侧是ObjectId
,这将引起很多麻烦,因此保持为string
。
待办事项
- 找到一种方法批量添加数据而不是逐个添加。
- 将数据库备份上传到S3。
- 制作一个简单的GUI以简化迁移。