Migration stopped working after v3.1.11 |
Hi,
My project is using Migration library to create and update table structures. Until version 3.1.10 everything worked fine. i use cli to execute the migration: `php index.php migrate_controller up` This works in version 3.1.9, 3.1.10 but not not 3.1.11. After swapping the system folder the following error presented itself: CLI returns following error: Database error: A Database Error Occurred Error Number: 42000/1102 Incorrect database name '' SHOW TABLES FROM `` Filename: libraries/Migration.php Line Number: 167 At first glance the libraries look identical... yet it does not work in 3.1.11 when i replace the system folder with the 3.1.10 / 3.1.9 it's up and running again ... I've been searching for where it's going wrong for over 3 hours now but can't seem to locate the issue ... Am i overlooking something or is it a bug. Thanks in advance, Bart
hello,
just to be sure you copy paste the system folder and the mime file right ? https://codeigniter.com/user_guide/insta..._3111.html
(10-04-2019, 05:31 AM)mboufos Wrote: hello, Hi mboufos, Yes that's the first thing i triple checked "just downloaded latest version from the site, duplicated project, checked everything ... still happens. Something has changed in the core of the framework i guess... (10-04-2019, 05:34 AM)bartMommens Wrote:(10-04-2019, 05:31 AM)mboufos Wrote: hello, ok heheh tbh i havent use that library and i cant help you . Just wait the Super CI Team will check it
(10-04-2019, 05:50 AM)mboufos Wrote:(10-04-2019, 05:34 AM)bartMommens Wrote:(10-04-2019, 05:31 AM)mboufos Wrote: hello, No worries but i like the way you think, most of the time in the middle of a critical error you forget the little things. Hopefully it gets fixed soon or someone has a solution. But thank god that CI works again by just swapping one folder. If it was a Laravel project i would of well ... cried
Are you using the PDO driver perhaps?
This commit adds the whole FROM statement, that weren't there before. I think you can switch to mysqli driver and it will still work in 3.1.11 until it's fixed.
(10-04-2019, 12:35 PM)jreklund Wrote: Are you using the PDO driver perhaps? I'm skeptical that it is due to that commit. The whole FROM statement has always been there. It's how the table name is escaped that changed. Maybe the database config didn't supply a database name? Or, that property got whacked by some other code?
@davefriend: It haven't always been there, look at the commit. It just got added to system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php
And it won't be able to append $this->database as it's been (probably) left out in @bartMommens script.
(10-04-2019, 02:38 PM)jreklund Wrote: @davefriend: It haven't always been there, look at the commit. It just got added to system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php You're partly correct - it hasn't always been there since CI v3.0.0 From CodeIgniter version 2.1.3 (the oldest I have handy) pdo_driver.php PHP Code: function _list_tables($prefix_limit = FALSE) So, it was there and then it wasn't and now it is again. For PDO the database name need not be included in the query, but it isn't wrong to provide it. (Though it does need to be a useful value.) I cannot see that the database property would get set from a DSN string. It seems only to get a value from the /config/database.php file. If PDO is being used (meaning the connection is via 'dsn') then the connection settings might have 'database' => '', and that might be why the "incorrect database name '' " error is happening. We don't know if he's using PDO anyway though it seems likely. It might be possible to stick with CI v3.1.11 by setting a database name in the config.
(10-04-2019, 08:09 PM)dave friend Wrote:(10-04-2019, 02:38 PM)jreklund Wrote: @davefriend: It haven't always been there, look at the commit. It just got added to system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php Hey Guys, Thank you all for your replies, and you are correct i am using the PDO Driver so i use the DSN string in the cofing/database.php. I'm going to change from PDO to MYSQLi and hopefully everything keeps working. Thanks for the help! i Can confirm that switching over to MYSQLi drivers works, so this means that several other users might be affected by this issue and be unaware of it. Reported this issue on the github of CI. Thank you guys for your insights, i'm now going to test the rest of my application to check that all the other things keep working after database driver switch Best regards, Bart |
Welcome Guest, Not a member yet? Register Sign In |