"user warning: Table 'drupal_devel.date_format_types' doesn't exist query: SELECT dft.type, dft.title, dft.locked FROM date_format_types dft ORDER BY dft.title in C:\drupal\drupal6\sites\drupal_devel\modules\date\date_api.module on line 1925."

I get this warning when I run update.php after replacing 2.0-rc6 with the new 2.0 version.

Here is the call stack:

sites/drupal_devel/modules/date/date_api.module._date_format_types_build : lineno 1925
sites/drupal_devel/modules/date/date_api.module.date_get_format_types : lineno 1765
sites/drupal_devel/modules/date/date/date.module.date_theme : lineno 282
includes/theme.inc._theme_process_registry : lineno 266
includes/theme.inc._theme_build_registry : lineno 399
includes/theme.maintenance.inc._theme_load_offline_registry : lineno 75
includes/theme.inc._init_theme : lineno 179
includes/theme.maintenance.inc._drupal_maintenance_theme : lineno 61
includes/bootstrap.inc.drupal_maintenance_theme : lineno 1085
update.php.{main} : lineno 609

Am I not upgrading correctly? I just delete the old 'date' module directory, untar the new version into the module directory and run update.php. Should I uninstall 'date' first?

It looks like 'date_format_types' is something new added and the new code is executed by the maintenance theme. The new code assume 'date_format_types' exist.

Please advise on what to do for upgrading from 6.x-2.0-rc6 to 6.x-2.0. I get this problem upgrading on my development site so I am holding off upgrading my production sites until I get instruction on what to do.

Thanks!

Comments

karens’s picture

Status: Active » Fixed

The message will go away when you finish updating. Read the message and it says you need to re-run update.php. You may have to re-run it a couple times because certain updates can't run until others finish.

mattyoung’s picture

Okay, got it. Just ignore the warnings and run update.php twice. Everything worked.

Thanks!

ju_wien’s picture

I had the same warning like above and tried to just continue upgrading, (also from -rc6) but then it says:

The following queries were executed
date module
Update #6005

* Failed: Some updates are still pending.
Please re-run the update script.

date_api module
Update #6002

* Failed: date.module has updates, but cannot be updated until views.module is updated first.

My problem is: I can't find any "views module", so I can't update it (and there is also no hint in the administration section about other modules that need to be updated).

epimeth’s picture

I get a whole list of tables that were not found and also a request to update the views module.
I never *installed* the views module!
This is probably happening because I only use the following modules:
Date API
Date PHP4
Date Popup
Date Timezone

mattyoung’s picture

There seems to be some kinks in this upgrade. I do have the Views module so my upgrade works simply by running update.php twice. However, in case no views module, the update do not work.

Maybe it simplest just first disable/uninstall date-2.0-rc6, then install the new version as a brand new install?

7wonders’s picture

Can confirm that the views module must be installed and enabled for the db updates to run successfully.

ju_wien’s picture

I deactivated all components of date and related modules (signup etc), but it still asks me to update "views" first.

The following queries were executed
date module
Update #6005

* Failed: Für date.module liegen Aktualisierungen vor. Dieses Modul befindet sich im Modulverzeichnis, ist aber nicht aktiviert.
Wenn es aktiviert wird, muss das Aktualisierungsskript noch einmal ausgeführt werden. Diese Nachricht erscheint so lange, bis das Modul aktiviert und die Aktualisierungen ausgeführt wurden.

translated: There is a new version available in the modules-folder, but it is not activated. You have to perform another update, once the module has been activated.

date_api module
Update #6002

* Failed: date.module has updates, but cannot be updated until views.module is updated first.

mattyoung’s picture

>I deactivated all components of date and related modules

I don't know what you mean by 'deactivated'. If you just uncheck the module in 'admin/build/modules', then that's is not enough. After you uncheck the date module components, you must then go to 'admin/build/modules/uninstall' and run uninstall to remove schema and other stuff. Then when you enable the new date module version, it will just install and not run update_xxxx().

Don't use 'deactivate' because it's unclear. You should use precise terminology: enable/disable when you check/uncheck a module on the 'admin/build/modules' page, and 'uninstall' when you uninstall a module at 'admin/build/modules/uninstall'.

It appears the version upgrade logic is little faulty. It assumes 'views' module is installed. If you don't have the views module installed, it'll keep complaining.

Here is the offending code:

function date_api_update_6002() {
  $ret = array();
  // don't attempt to upgrade if views is not yet upgraded.
  if (drupal_get_installed_schema_version('views', TRUE) < 6000) {
    $ret = array();
    drupal_set_message(t('date module cannot be updated until after Views has been updated. Please return to <a href="@update-php">update.php</a> and run the remaining updates.', array('@update-php' => base_path() .'update.php?op=selection')), 'warning', FALSE);
    $ret['#abort'] = array('success' => FALSE, 'query' => t('date.module has updates, but cannot be updated until views.module is updated first.'));
    
    return $ret;
  }

if 'views' module is not installed, drupal_get_installed_schema_version('views', TRUE) returns NULL, if (NULL < 6000) is always TRUE so it'll always complain.

This problem should've come up for the previous updates because the same logic are used there.

Maybe the check should be like this:

  if (module_exists('views') && drupal_get_installed_schema_version('views', TRUE) < 6000) {
ju_wien’s picture

with "deactivate" i meant "disable".

> you must then go to 'admin/build/modules/uninstall'

but doesn't uninstall also remove the data and certainly the settings?

karens’s picture

#8 is almost right but that would skip the update if Views is not installed which is not the right result. We need:

if (!module_exists('views') || drupal_get_installed_schema_version('views', TRUE) < 6000) {

Fixed in -dev. Thanks for the help.

karens’s picture

No, you were right about the fix, I just switched back to the fix in #8.

ju_wien’s picture

  if (module_exists('views') && drupal_get_installed_schema_version('views', TRUE) < 6000) {

This helped resolve my problem. Thank you!

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.