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

时间:2016-01-06 01:12:21

标签: php mysql sqlite redbean

我有一个简单的网络应用程序,我使用redbean PHP构建,它具有非常简单的结构,有三种bean类型:

区域 房屋 人

所有关系都是独一无二的1:很多。因此,Person只属于1 Building,而Building属于1 Area

Area
  BuildingList
    PersonList

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

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

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

我在下面尝试过的内容:

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

1 个答案:

答案 0 :(得分:0)

我会先说这个我没有亲自尝试过,但是因为你可以通过sqlite3控制台转储整个数据库,那么我的第一种方法是这样做,然后尝试导入该文件进入MySQL。

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

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

将.sql文件导入MySQL(如here所述):

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