2016-01-06 16 views
8

mam prostą aplikację internetową, która byłem budynku przy użyciu redbean PHP, który ma bardzo prostą strukturę z trzech rodzajów fasoli:Czy mogę wyeksportować Sqlite db przy użyciu ORM PHP RedBean i importować do MySQL?

obszarów budynki osób

Wszystkie relacje są wyłączną 1: Wiele. Tak więc, Person należy tylko do 1 Building, a Building należy do 1 Area.

Area 
    BuildingList 
    PersonList 

Obecnie mam rozwija go za pomocą Sqlite3 celu ułatwienia rozwoju, ale chcę, aby przenieść dane do mySQL. Mam dużo danych, które już dodałem.

Czy istnieje łatwy sposób użycia RedBean do eksportu WSZYSTKICH fasoli do nowej bazy danych MySql?

wiem, że mogę wyszukać sqlite ->MySQL/MariaDB konwerter, ale również potencjalnie chcą, aby móc korzystać z tego w odwrotnej kolejności dokonać migracji witryny bardzo łatwo przenieść/backup/zmiany DB.

Co Próbowałem poniżej:

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

próbowałeś 'exportAll() 'wspomniano w [redbean docs] (http://www.redbeanphp.com/index.php?p=/import_and_export)? – weirdan

+0

'exportAll()' jest świetne i wszystko może działać z wykorzystaniem rekurencji, aby dodać do bazy danych MySQL. Nie poszedłem zbyt daleko w tę stronę, ale coraz bardziej prawdopodobne jest, że będę musiał napisać funkcje, aby zrobić to ręcznie. – Armstrongest

Odpowiedz

0

Będę przedmowa tego stwierdzenia, że ​​nie osobiście starał się to zrobić, ale skoro można zrzucić całą bazę danych za pomocą konsoli sqlite3, a następnie moim pierwszym podejściem byłoby to zrobić, a następnie spróbuj zaimportować ten plik do MySQL.

Dumping bazę sqlite sqlite3 z konsoli:

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

Importowanie pliku .sql do MySQL (jak opisano here):

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

+0

dzięki! Dam ci szansę! – Armstrongest