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

2022-08-30 20:10:06

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

区域 建筑 人员

所有关系都是排他性的 1:很多。所以,a 只属于 1,a 属于 1。PersonBuildingBuildingArea

Area
  BuildingList
    PersonList

目前,为了便于开发,我一直在使用它进行开发,但我想将数据移动到.我有很多数据我已经添加了。Sqlite3mySQL

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

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

我在下面尝试了什么:

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

首先,我要说的是,我个人没有尝试过这样做,但是由于您可以通过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


答案 2

推荐