The following updates returned messages
search_api_db module
Update #7107
Failed: DatabaseSchemaObjectDoesNotExistException: It's not possible to cange the definition of field search_api_db_indici_sqlite_text.field_name: the field doesn't exixts. in DatabaseSchema_mysql->changeField() (linea 462 di D:\sites\xxx\includes\database\mysql\schema.inc).
I have two db servers and so two different index on them. One db is mysql and the other is SQLite db.
The strange behavior is that mysql want change a field on SQLite database index. May be this the Error that occurs in update.php
?
Because "search_api_db_indici_sqlite"
is a SQLite index, not mysql index.
I wait for response.
Comment | File | Size | Author |
---|---|---|---|
#23 | 2855634-23--fix_update_7107_for_different_db.patch | 1.39 KB | SpadXIII |
#15 | 2855634-15--fix_update_7107_for_different_db.patch | 1.39 KB | levmyshkin |
#12 | 2855634-12--fix_update_7107_for_different_db.patch | 1.32 KB | drunken monkey |
|
Comments
Comment #2
drunken monkeyupdate.php
shows this error?!? That would be very strange – under no circumstances should an update function trigger a Search API search.What updates were you trying to run? Does it say which update produced the error? Do you maybe have some other search-related contrib, custom or feature modules installed that might be executing update hooks?
Comment #3
IRONFELIX CreditAttribution: IRONFELIX commentedI also tried to install version 1.6 and in my case update process was frozen (no progress bar, no messages in log, just screen with selected menu "run updates"). After that, my site was in development mode and I returned the previous version.
Comment #4
cozzamara CreditAttribution: cozzamara commentedYes update.php show this error. I'm upgrading from 1.5 to 1.6. No dev version.
Before run update.php I got this update to do:
search_api_db module
7107 - Eliminates the use of low-standard hashes.
And after click "apply pending updates" I get the error.
I'm updating only this module and before updating no errors appears.
Comment #5
cozzamara CreditAttribution: cozzamara commentedComment #6
cozzamara CreditAttribution: cozzamara commentedThe following updates returned messages
search_api_db module
Update #7107
Failed: DatabaseSchemaObjectDoesNotExistException: It's not possible to cange the definition of field search_api_db_indici_sqlite_text.field_name: the field doesn't exixts. in DatabaseSchema_mysql->changeField() (linea 462 di D:\sites\xxx\includes\database\mysql\schema.inc).
I have two db servers and so two different index on them. One db is mysql and the other is SQLite db.
The strange behavior is that mysql want change a field on SQLite database index. May be this the Error that occurs in
update.php
?Because
"search_api_db_indici_sqlite"
is a SQLite index, not mysql index.I wait for response.
Comment #7
cozzamara CreditAttribution: cozzamara commented#6 is not exact. The index is mysql index I did a mistake.
However the issue continue to happens.
I relative solve the issue by deleting all server and index and after run the update.
Comment #8
jerry CreditAttribution: jerry commentedI'm seeing the same error from update 7107, for what it's worth.
Comment #9
drunken monkeyThat's strange – update #7104 should have converted all text tables to the new schema, with a single fulltext table with the mentioned "field_name" column. Due you maybe have something like Features set up, or a complex deploy process, which might result in that update's changes being reverted, or not correctly applied?
Comment #10
jerry CreditAttribution: jerry commentedIn my case, Features could be the culprit. I didn't originally build this site, but I see a Feature exists that's related to Search API. Perhaps that's responsible.
Comment #11
SpadXIII CreditAttribution: SpadXIII at ezCompany commentedI just tried updating this module as well and ran into the same issue as #6: "Cannot change the definition of field search_api_db_search_node_index_text.field_name: field doesn't exist."
In my case that's because I have set up 2 different databases: 1 for the site and 1 for the search_index. Update 7107 tries to change the table which exists in the search_index database by doing queries on the default database.
Previous updates were getting the database-connection manually.
Comment #12
drunken monkeyDamn, you're right, didn't proplery account for a different DB being set in that update! (Did remember in all the others, apparently, though.) Thanks a lot for reporting!
The attached patch should fix this issue. Would be great if someone could test it!
I'll also include a note in the release notes – maybe someone does read them.
Comment #13
drunken monkeyComment #14
circuscowboy CreditAttribution: circuscowboy commentedI am getting this issue as well. In my case everything is setup using features. The patch does not work for my situation. Any idea how I can fix this feature issue?
Comment #15
levmyshkinI had an error with table search_api_db_default_node_index_text, so I add validation for tables:
if ($text_table && db_table_exists($text_table)) {
Comment #17
rolfmeijer CreditAttribution: rolfmeijer at Dutch Open Projects commentedI’ve tried the patch form #12, but with no success. I have a site set up with features too, it is a Commerce Kickstart distribution.
Comment #18
steinmb CreditAttribution: steinmb commentedAlso had the same problem after applying patch #12.
Comment #19
drunken monkeyIf you've got a setup with Features, the problem is most likely that you reverted the feature after running the update, which you shouldn't do. See the (numerous) other issues about the same problem in this queue.
This issue only applies if you have two DB servers setup, and don't use the default database for the search server. In this case, the patch in #12 should help and it would be great if you could test it and post feedback.
Comment #20
steinmb CreditAttribution: steinmb commentedThank you for your swift reply :)
I confirm it is controlled by features, but there where no revert before running update (hook_update_N(). drush up -y was we I did. This updated failed on one of our staging servers. To confirm that nothing changed when these servers restore from production, I checked the production db. directly.
Production server
A bit baffled by this result.
This server have two search servers defined. One is MySQL/MariaDB that aslo Drupal runs of. The other is a Solr server, but it is currently disabled.
Comment #21
steinmb CreditAttribution: steinmb commentedA little quick stepping in a debugger at
foreach ($options['indexes'] as $index_id => $fields)
gave me:That is very odd. This installation only got one index.
Comment #22
drunken monkeyWell, are these other indexes in the server options in the feature? In that case, you've got your error source. Just remove them from the options and the problem should be solved, I'd say.
Comment #23
SpadXIII CreditAttribution: SpadXIII at ezCompany commentedJust a quick re-roll of #15 against latest version so I can add it to our make file.
Comment #24
chris.jichen CreditAttribution: chris.jichen commented#23 works! Thanks
Comment #26
drunken monkeyWell, better late than never, I guess. Thanks a lot for testing and reporting back!
Committed.
Thanks again, everyone who worked on this issue!