我有一个简单的网络应用程序,我使用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
答案 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