3

My Drupal site is having a serious issue. Whenever I try to add content, such as a Basic Page, I receive this error:

PDOException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'field_adwords_conversion_id' in 'field list': INSERT INTO {field_data_field_adwords} (entity_type, entity_id, revision_id, bundle, delta, language, field_adwords_conversion_id, field_adwords_conversion_language, field_adwords_conversion_format, field_adwords_conversion_color, field_adwords_conversion_label) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8, :db_insert_placeholder_9, :db_insert_placeholder_10); Array ( [:db_insert_placeholder_0] => node [:db_insert_placeholder_1] => 45 [:db_insert_placeholder_2] => 45 [:db_insert_placeholder_3] => page [:db_insert_placeholder_4] => 0 [:db_insert_placeholder_5] => und [:db_insert_placeholder_6] => 992249945 [:db_insert_placeholder_7] => en [:db_insert_placeholder_8] => 3 [:db_insert_placeholder_9] => FFFFFF [:db_insert_placeholder_10] => ) in field_sql_storage_field_storage_write() (line 451 of

I know things don't just happen without a reason, but I'm not sure how it happened. Looking at my change notes, I did make a change on 01/27/2014: "Removed 'AdWords' from Webforms to work-around an error." Vague, I know. But this seems to be related to the "Google AdWords Conversion" module I am using (v7.x-2.0-beta). I went to their site and no one else appears to be having this issue.

I tried to tinker with the field definitions, but every time I do I end up with a SQL error.

Unfortunately, I cannot remove the AdWords Conversion module from the admin panel; it is grayed out because it's in use. I tried removing it manually (from the file system), and that rendered the site inaccessible; I had to restore from back-up.

I could, in theory, restore to my 01/27 back-up... but I've made many cosmetic changes since then, somehow without noticing this critical SQL error. So my preference would be to fix this rather than back-out to 3 weeks ago.

I'm running Drupal v7.26. I'm at a loss on how to fix this. Does anyone have any suggestions?

Thank you very much!

  • 1
    I know this may sound obvious, but have you tried running update.php? Just to make sure the module's DB schema is up to date – Alex Kirsten Feb 17 '14 at 6:58
  • Yes, I did. And it actually did find "2 Pending Updates", which I applied. Unfortunately, that did not fix the problem; I'm still getting that error. – mrbranden Feb 17 '14 at 16:05
2

OK I would take this approach. First off you need to look at the system table within your Drupal DB. Since you can't for whatever reason disable the module from the UI you'll need to disable it from here. You can do this by navigating to the row representing the module, and setting the status column to 0. Once you've done this clear your cache.

The error message you're getting is due to a database schema inconsistancy, so what I would try do is navigate to the Modules -> Uninstall (/admin/modules/uninstall) and see if I can now uninstall the module. Depending on how the module is written, this should invoke hook_uninstall and undo any database scheme alterations made when the module was initially installed.

Hopefully this will get rid of the nasty PDOException you're running into when editing your webform.

  • You are a genius, my friend! That worked, thank you so much! – mrbranden Feb 19 '14 at 0:18
  • Awesome, glad I could help :) – Alex Kirsten Feb 19 '14 at 6:58
0

The error:

Column not found: 1054 Unknown column 'X' in 'field list': INSERT INTO {field_data_field_X} ... in field_sql_storage_field_storage_write()

means that you're trying to save field data, but there is no column to store it.

Probably your Drupal structure has been corrupted or it's bug of the module.

This is normally defined in hook_field_schema of your module which deals with that type of field (usually in .install file).

So the solution could be to:

  • recreate a field instance (remove the old one, create a new one),
  • reinstall the module (disable, uninstall and install again),
  • create such column manually in SQL or using below sample code:

    $column_name = _field_sql_storage_columnname('field_adwords', 'conversion_id');
    db_add_field('field_data_field_adwords', $column_name, 'conversion_id');
    db_add_index('field_data_field_adwords', $column_name, array($column_name));
    
  • recreate all the schema fields as per Update field schema

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.