I already know that Windows support is pretty squeaky new, but thought it was time to take advantage of all our production level systems and move some v 6 sites to Windows. I was already succesful running drupal 6 with mysql on windows with all of our modules so I think this is plausible. Now to move to Sql server and V7.
Step one was just to see a vanilla new Drupal 7 site running well on Windows and Sql Server before going through the more painful upgrade of the v6 sites. I can get to the point where it is adding tables to my sql server 2008 R2 database, but then it fails after 15 or tables are added. The website install error is:
SQLSTATE[IMSSP]: An error occurred substituting the named parameters.
OK, that isn't very helpful so I installed Drush and tried to install from there. Got more detailed information. Looks like a bug, but can't be sure as use of savepoints is something we generally avoid in Sql Server land:
C:\ProgramData\Propeople\Drush\commands\sql\sql.drush.inc).
Starting Drupal installation. This takes a few seconds ... [ok]
WD registry: PDOException: SQLSTATE[IMSSP]: An error occurred [error]
substituting the named parameters.: RELEASE SAVEPOINT savepoint_1;
Array
(
)
in _registry_parse_file() (line 179 of
C:\_code\PAi\ExternalWeb\DEV\drupal7\includes\registry.inc).
WD php: PDOException: SQLSTATE[IMSSP]: An error occurred substituting [error]
the named parameters.: RELEASE SAVEPOINT savepoint_1; Array
(
)
in _registry_parse_file() (line 179 of
C:\_code\PAi\ExternalWeb\DEV\drupal7\includes\registry.inc).
WD php: Warning: Cannot modify header information - headers already [warning]
Thanks for any suggestions. I'll probably attempt to do an upgrade next instead of an install as I would think it would not have the same issues.
Comments
Start Over
This is probably not the answer you want, but I'm seeing so many new features in Drupal 7 that I've decided to re-work my D6 site from the ground up by manually putting in the new information to a clean D7 install. That way I can upgrade and correct inefficiencies from the D6 system and take advantage of the new D7 entity vs. D6 node configuration. I can copy and paste most of the text and just upload new photos and update as I go along. Wouldn't be ideal for a huge site where migration would be faster, but it works well for my site with fewer than 1,000 pages.
A new Drupal install does
A new Drupal install does sound like the way to go. Unfortunately, that is what I can't seem to get going.
I have narrowed this down to issues with the sql server driver (I think) I can get rid of the the previous error by setting transactions = FALSE, but it blows up anyway. I commented out the registry function and it does continue to adding more of the modules, but then blows up later in the install. I get a MSVCR90.dll fault. I have seen in the IIS forums that others are having similar fault exceptions since the 5.3.8 version of php, so I am hoping that is not my issue.
I am going to try ODBC and see if I get any farther.
FWIW, I was able to install D7 on this system with mysql. I was also able to reproduce this error on a separate windows box. This one is Vista, and the other is Windows 7. Eventually I need to get this working on Windows 2008 R2.
Host Capability
I'm privileged to be able to leave the hosting configuration to my own Drupal-specialist hosts, Hosts of America, and I know that Dries Buytaert's company Acquia offers Drupal-optimized, cloud-based hosting for small sites on up to sites with millions of hits per month. Drupal 7 requires a much larger PHP memory footprint than D6, and Views along with CTools in D7 is PHP memory heavy, so be sure that you are allocating enough memory for each site. If D7 installs are giving you this much unresolved trouble, you may want to consider moving hosting tasks to a provider like Acquia to free you up to do higher-paying development work. Hosting is not an extremely lucrative aspect of website management to be involved in these days, from what I hear from other people involved in doing it.
For anybody following along I
For anybody following along I have figured out exactly what is causing this error. By disabling transaction support in /includes/database/sqlsrv/database.inc I was able to install completely.
Yes I know that there is a setting of 'transactions' => 'FALSE' and if had worked countless hours would have been spared! But after watching a trace of the failure I could see that transactions were still being attempted.
Where to go from here I can't say exactly. There is no explicit transaction code in the drupal sqlsrv driver, though there is a stub for a transaction class extending the base class with an implementation of { }. Could be buried in the pdo implementation which would point back to Microsoft. I'll post to the appropriate forum.
And the answer to this is
And the answer to this is below. There was a bug in the Drupal related to transactions in the driver for Sql Server that caused a fault.
http://social.technet.microsoft.com/Forums/en-US/sqldriverforphp/thread/...
Thanks!
Thank you for the find and the explanation! For me, Drupal would not install without this modification. Running Windows Server 2008 R2 x64, Apache 2.2.21 x86, PHP 5.3.8 x86, and Drupal 7.10 connected to SQL Server 2008 R2.
However, with this kind of bug, it makes me wonder if this module is ready for production.
thanks ...
Applying this patch worked for me.... Thanks
-- Sree --
IRC Nick: sreeveturi
RELEASE SAVEPOINT savepoint_1
I'd love to get more information on what MYSQL thinks a RELEASE SAVEPOINT is, but thought that I'd point folks to the most relevant project page - http://drupal.org/project/sqlsrv