Pomyślnie skonfigurowałem drugą bazę danych z podpisem kodu i udało mi się utworzyć tabelę. Problem polega na tym, że każda poprzednio istniejąca linia kodu, która używała $this->db
, teraz używa drugiej bazy danych, więc naturalnie pojawia się błąd. Pozwól mi wyjaśnić z nieco więcej szczegółów:CodeIgniter Używanie wielu baz danych bez zmiany istniejącego kodu dla pierwszej bazy danych
Używam biblioteki migracji z codeigniter iw nowej migracji, tworzę bazę danych z dbforge jak tak $this->dbforge->create_database('website_store')
. Do tej pory tak dobrze, to podłączam się do tej bazy danych za pomocą $DB2 = $this->load->database('store', TRUE);
i tworzę tabelę. Wszystko jest tu również dobre.
Następnie końce migracji i CodeIgniter próbuje zaktualizować tabelę migracji do pchania najnowszą wersję, ale wygląda na store
bazie zamiast domyślnej bazy danych, więc to wyskakuje ten błąd:
Table 'website_store.migrations' doesn't exist
UPDATE `migrations` SET `version` = 45
Mam nadzieję, że ktoś wie, o używaniu wielu baz danych i biblioteki migracji. Nawiasem mówiąc, w pliku database.php jest ustawiona na użycie domyślnej bazy danych: $active_group = "default";
, a nie bazy danych sklepu, więc powinna działać. Wygląda na to, że biblioteka migracji widzi, że jest już załadowana baza danych, czuje się leniwy i używa tego.
UWAGA: Wygląda jak ci faceci mieli podobne problemy, które są ustalone przez ustawienie „p Starannie podłączyć” na „false”, ale byłoby miło, aby utrzymać połączenie zarówno bazy:
Convenient Way to Load Multiple Databases in Code Igniter
Error Using Multiple Database In CodeIgniter
Dobrze, poszedłem z rozwiązaniem "pconnect" do "false". Nie to, co chciałem zrobić, ale działa. – Marco