Laravel-将数据库行导出为sqlite格式

Laravel-将数据库行导出为sqlite格式,laravel,sqlite,Laravel,Sqlite,我们有一个基于Laravel 5.3的网站和一个可以离线工作的移动应用程序。Laravel正在使用MySQL数据库 我需要在web和移动应用程序之间同步数据。移动应用程序将发出带有时间戳的请求,API将发送自该时间戳以来更改的所有数据 我的手机开发者说,他最容易将数据作为单个sqlite数据库文件接收。所以我的问题是: 在Laravel中是否有方法将所选数据导出为有效的sqlite格式 sqlite格式 Laravel与你的数据库服务器无关。您只需将当前数据库转储为纯SQL(即使用phpmyad

我们有一个基于Laravel 5.3的网站和一个可以离线工作的移动应用程序。Laravel正在使用MySQL数据库

我需要在web和移动应用程序之间同步数据。移动应用程序将发出带有时间戳的请求,API将发送自该时间戳以来更改的所有数据

我的手机开发者说,他最容易将数据作为单个sqlite数据库文件接收。所以我的问题是:

在Laravel中是否有方法将所选数据导出为有效的sqlite格式

sqlite格式


Laravel与你的数据库服务器无关。您只需将当前数据库转储为纯SQL(即使用phpmyadmin)并导入sqlite数据库。如果需要,您可以使用诸如导入转储文件之类的工具,然后将dev.sqlite二进制文件交给您,该文件也可以使用。

我最后创建了一个
Artisan
命令,该命令将所选表转储到sql,然后使用

因此,我命令中的整个代码如下所示:

exec('mysqldump -P ... login credentials ... tables to export ...'.storage_path('app/export/dump.sql'));
exec('mysql2sqlite '
    . storage_path('app/export/dump.sql') . ' ' 
    . storage_path('app/export/sqlite.db') 
);

我的移动开发人员说,对他来说,将数据作为单个sqlite数据库文件接收是最容易的——我不知道这是最容易的。。但是你可以。但可以肯定的是,这可能会暴露出很多。。嗯,我只能建议尝试使用json或其他序列化方法。我不想在laravel中使用sqlite db,我想将数据导出为sqlite格式。我知道。但是,不能一时兴起导出某些行。。就连我在谷歌搜索中能找到的最好的东西都是。。但说真的,如果我是你。我将从正确的序列化开始,而不是从数据库转储开始。如果你发布了为什么你需要sqlite(不管是关系很深还是这样),它可能会更好,我们可能会建议你一个更优雅的方法。是的,但有两件事:我需要根据移动应用程序的请求自动完成,我不需要转储所有数据库,只是更改了行。然后您肯定需要SQL转储(文本)格式的行。或者你用自己的格式。没有二进制sqlite格式允许您将两个数据库合并到一个文件中,因此最好使用您可以执行的普通查询(或您自己解析并基于其构建SQL查询并执行的数据)