我可以使用RedBean PHP ORM导出Sqlite数据库并导入MySQL吗?

Arm*_*est 10 php mysql sqlite redbean

我有一个简单的Web应用程序,我一直在使用redbeanPHP 构建,它有一个非常简单的结构,有三种bean类型:

地区建筑人

所有关系都是独一无二的1:很多.所以,a Person只属于1 Building,Building属于1 Area.

Area
  BuildingList
    PersonList
Run Code Online (Sandbox Code Playgroud)

目前,我一直在开发它Sqlite3以便于开发,但我想将数据移动到mySQL.我已经添加了很多数据.

有没有一种简单的方法可以使用RedBean将所有bean导出到新的MySql数据库?

我知道我可以搜索sqlite- > MySQL/ MariaDB转换器,但我也可能希望能够反向使用它来使迁移站点变得非常容易移动/备份/更改DB.

我在下面尝试过的:

R::setup('sqlite:/' . __DIR__ . '/data/database.db'); 
R::addDatabase('mysql', $MySqlConn );

$old_datas = R::findAll( 'area' );
R::selectDatabase( 'mysql' );

foreach ($old_datas as $bean) {
    $new_area = R::dispense('area');
    $new_area->importFrom( $bean );
    $id = R::store( $new_area );
    var_dump( $new_area ); // shows new data
}

var_dump( R::findAll( 'area' ) ); // returns empty array
Run Code Online (Sandbox Code Playgroud)

Jon*_*ead 1

我会在前言中说,我个人并没有尝试这样做,但由于您可以通过 sqlite3 控制台转储整个数据库,所以我的第一个方法是这样做,然后尝试将该文件导入 MySQL。

从 sqlite 控制台转储 sqlite3 数据库:

sqlite> output database_dump.sql sqlite> .dump sqlite> .quit

将 .sql 文件导入 MySQL(如此处所述

mysql> use DATABASE_NAME mysql> source path/to/file.sql