Hi,
After being spoilt by magento with it's './pear update all' mechanism to upgrade an entire site and its modules, I am trying to find a way to manage the updating of multiple drupal installs in as painless a manner as possible.
My server is running plesk and each client will have their own install of Drupal. The suggestions of domain aliases for each site as per http://drupal.org/node/201322 is not applicable as it loses all the benefits of plesk (bandwidth monitoring, seperate client accounts, etc).
Trying to script it all with something like drush would probably be great, but so far i have been unable to get the drush_extras (in particular pm) to work at all - i keep getting command not found even though i have the commands in a command folder in the drush doler as well as having it in a .drush folder in my home folder. I think this may be more due to the fact that drush for D6 is downloadable only as a HEAD snapshot rather than an actual release that has been tested ???
Another alternative is to look at symlinking the httpdocs folder for each account to a single drupal install and use drupal in a multi-site setup. There are still some drawbacks to this with regards to permissions and any non drupal files that a client may wish to put in their account (at say the root level).
Right now, the only clear method seems to be maintaining a bunch of shell scripts that have to be tweaked every second day to keep up with the releases for modules. Even having a http://drupal.org/project/ <name>/latest url scheme would greatly improve this approach. But overall this is far from ideal.
But, I guess at the end of the day, how are people managing 10's/100's of drupal sites and keeping them regularly updated and maintained when the drupal multi-site functionality does not suit them ???
Thanks, Nik
Nik,
The truth is, IMHO, keeping updated your Drupal site(s) is not for the faint of heart. I use Drush all the time and it works well, but still updates are tedious work.
I'm not a coder myself and I so wish the Update process would get addressed, but it is what it is. I think it's coming though because D6 now includes the Update Status module in core.
Here are the command lines that I use to run Drush (from within the Drush folder):
On most servers: [./drush.php ]
On my Dreamhost server I must specify the path to php5: [/usr/local/php5/bin/php drush.php]
If you come up with any scripted means of keeping your sites updated I would surely like to know.
The only good scripts that I've pushed myself to write/maintain (truthfully, the core scripts came from the drupal site) is a backup/restore script to backup all code and the associated database. These scripts also make it easy to move things in and out of my staging area. I'd be happy to share them if you need them.
-----Original Message----- From: support-bounces@drupal.org [mailto:support-bounces@drupal.org]On Behalf Of Nik Derewianka Sent: Friday, March 27, 2009 8:10 PM To: support@drupal.org Subject: [support] Multiple site update and maintenance D6
Hi,
After being spoilt by magento with it's './pear update all' mechanism to upgrade an entire site and its modules, I am trying to find a way to manage the updating of multiple drupal installs in as painless a manner as possible.
My server is running plesk and each client will have their own install of Drupal. The suggestions of domain aliases for each site as per http://drupal.org/node/201322 is not applicable as it loses all the benefits of plesk (bandwidth monitoring, seperate client accounts, etc).
Trying to script it all with something like drush would probably be great, but so far i have been unable to get the drush_extras (in particular pm) to work at all - i keep getting command not found even though i have the commands in a command folder in the drush doler as well as having it in a .drush folder in my home folder. I think this may be more due to the fact that drush for D6 is downloadable only as a HEAD snapshot rather than an actual release that has been tested ???
Another alternative is to look at symlinking the httpdocs folder for each account to a single drupal install and use drupal in a multi-site setup. There are still some drawbacks to this with regards to permissions and any non drupal files that a client may wish to put in their account (at say the root level).
Right now, the only clear method seems to be maintaining a bunch of shell scripts that have to be tweaked every second day to keep up with the releases for modules. Even having a http://drupal.org/project/ <name>/latest url scheme would greatly improve this approach. But overall this is far from ideal.
But, I guess at the end of the day, how are people managing 10's/100's of drupal sites and keeping them regularly updated and maintained when the drupal multi-site functionality does not suit them ???
Thanks, Nik -- [ Drupal support list | http://lists.drupal.org/ ]
I am using Organic Groups with Drupal 6. Any group can be created by authenticated users.
How do you promote a group creator to "group owner" role, and how do you promote somebody who joins a group to "group subscriber" role (where they can post to groups).
The fundamental difference between a "group owner" and a "group subscriber" role is that a group owners can edit/delete posts within his group (and possibly change workflow) - and I want this distinction maintained.
Which module would most effectively achieve this?
(I have tried Organic Groups User Roles module, but that doesn't seem to do the trick in a simple and effective manner.)
Thanks for your help.
On Sun, 29 Mar 2009 05:40:06 -0500 "Cosmo" drupallist@dirtsimple.net wrote:
Nik,
The truth is, IMHO, keeping updated your Drupal site(s) is not for the faint of heart. I use Drush all the time and it works well, but still updates are tedious work.
I just had to solve a problem that may offer some suggestions for further development.
I've to do some "maintenance" to the DB supporting a multisite using prefix/schema/different db users in postgresql.
I'm not aware of any way to loop through all "active" sites in a multisite. First, because I'm not aware of the concept of "active" site.
Anyway I could write some rudimentary code to "crawl" sites/ dir and then
foreach($site) { drush ... }
But in my case that's far from optimal since the DB is the same and the operation to be performed is the same as well, just the result is different according to the configuration of each site.
What I'm doing is duplicating and hard coding in an array the config I'm interested into and then loop over the array.
I think somehow I could obtain a similar result: - hardcoding some stuff in settings.php and making them unchangeable from the web UI - using drush to build up an array of each site config (is it possible?)
Anyway what is a site config is hard to define or "group". I think that other than in settings.php the majority of the most interesting stuff are inside drupal variables. But still I wouldn't be sure they are all there, that's depend on module developers as well.
Putting some order there... and adding some hook/extra config param may make managing multisites much more enjoyable.
In drush project page it is said that sql.drush module is "multisite aware"... I've been looking at the code, but it just load settings and parse the db_url.
I think having clearer what a drupal config is would improve the profile project as well. Maybe even automatically group drupal variables by module could help managing the config... (even core modules that uses variables).
Quoting Ivan Sergio Borgonovo mail@webthatworks.it:
On Sun, 29 Mar 2009 05:40:06 -0500 "Cosmo" drupallist@dirtsimple.net wrote:
Nik,
The truth is, IMHO, keeping updated your Drupal site(s) is not for the faint of heart. I use Drush all the time and it works well, but still updates are tedious work.
I just had to solve a problem that may offer some suggestions for further development.
I've to do some "maintenance" to the DB supporting a multisite using prefix/schema/different db users in postgresql.
I'm not aware of any way to loop through all "active" sites in a multisite. First, because I'm not aware of the concept of "active" site.
Crontab comes to mind using wget similar to cron.php.
Or perhaps a master control Drupal instance where the $db_url is an array of each sites DB. Then you can run your foreach specifying each DB with db_set_active.
-- Earnie -- http://r-feed.com/ -- http://for-my-kids.com/ -- http://www.4offer.biz/ -- http://give-me-an-offer.com/
I have done a lot of reading on this topic and I have not found much so I am hoping people can send me in the right direction. We are looking to incorporate flash in the node add process. The idea is that we will be able to have people make selections using a Flash tool and then pass that data back to the node add form. We are also going to need to send data to the Flash tool.
Is there a module that sends and receives XML data on demand for us to start with?
Does anyone know of a case study that did this?
Also, we are looking for a module that will help us break the node add form into parts. I heard someone mention doing this in a session video from Drupal Con DC but I did not get the name of the module.
Thank you very much for your help with this exciting project.
Thanks, Steve
Hey
Have a gander at the amfphp module, you can pretty much make a flash front end for your drupal site so im pretty sure it will work for you.
http://drupal.org/project/amfphp
skessler@denverdataman.com wrote:
I have done a lot of reading on this topic and I have not found much so I am hoping people can send me in the right direction. We are looking to incorporate flash in the node add process. The idea is that we will be able to have people make selections using a Flash tool and then pass that data back to the node add form. We are also going to need to send data to the Flash tool.
Is there a module that sends and receives XML data on demand for us to start with?
Does anyone know of a case study that did this?
Also, we are looking for a module that will help us break the node add form into parts. I heard someone mention doing this in a session video from Drupal Con DC but I did not get the name of the module.
Thank you very much for your help with this exciting project.
Thanks, Steve -- [ Drupal support list | http://lists.drupal.org/ ]
You might check out the Services and Views XML modules and it's stuff although Services is still in development. I ended up developing my own light weight Object Oriented xml feeds page, and am working with some general XML api's but they aren't ready for prime time.
Doing much Flex developemnt here.
-----Original Message----- From: support-bounces@drupal.org [mailto:support-bounces@drupal.org] On Behalf Of skessler@denverdataman.com Sent: Friday, April 03, 2009 9:12 AM To: support@drupal.org Subject: [support] Flash and Node Creation
I have done a lot of reading on this topic and I have not found much so I am hoping people can send me in the right direction. We are looking to incorporate flash in the node add process. The idea is that we will be able to have people make selections using a Flash tool and then pass that data back to the node add form. We are also going to need to send data to the Flash tool.
Is there a module that sends and receives XML data on demand for us to start with?
Does anyone know of a case study that did this?
Also, we are looking for a module that will help us break the node add form into parts. I heard someone mention doing this in a session video from Drupal Con DC but I did not get the name of the module.
Thank you very much for your help with this exciting project.
Thanks, Steve -- [ Drupal support list | http://lists.drupal.org/ ]
On Fri, 03 Apr 2009 16:05:24 +0000 Earnie Boyd earnie@users.sourceforge.net wrote:
Crontab comes to mind using wget similar to cron.php.
Yep you're right... if I've dev and prod sites and: - I want to svn without worries... I can't save stuf related to the environment in drupal cfg - on the other hand the difference of environment is going to be the server name
meanwhile I ran into other problems... and I'm thinking at what chx was proposing about sqlite.
Somehow drupal configuration and environment is not that definite.
You can't just eg. put it in a complex object, save it somewhere and substitute it with another one.
What I mean... you can't eg. bootstrap, save the configuration somewhere, change db connection, re-bootstrap, save the configuration in some other place... and then re-bootstrap and load a "personality" on the fly.
As a concrete example I tried to build up a minimum static "configuration" to run my scripts on a multisite.
Everything was working till I had to switch the theme.
Here I'm on D5.
Switching a theme on the fly doesn't look even possible. Functions to load the theme dynamically include files and the naming conventions let people give clashing names in the themes so you end up in "function already defined" errors. Fortunately I can move part of the code I really need somewhere else but then I'll have to write some logic that decide which function to call according to a configuration parameter that's going to be a drupal variable that will introduce a dependency on the DB connection. One way would be to make templates classes, they could still dynamically include code but you could have several instances and shelter them in a namespace. Even the configuration could fit in a class, with a constructor that get a DB connection, so 2 configurations may share a connection, you could run the drupal code base switching between 2 configuration dynamically etc...
Or perhaps a master control Drupal instance where the $db_url is an array of each sites DB. Then you can run your foreach specifying each DB with db_set_active.
I know my situation is peculiar and I'm actually "scratching my own itch" but if you're sharing the DB across a multisite it's a pain to change connection. The theme system is actually a "good" example. If you've some complicated logic you'd like to simply switch and you don't want to play the glue game by yourself call_user_func($somestuff .'_somepostfix', $args); themes are a good candidate to change logic with just one switch... and by chance... I was actually dealing with some sort of theming... just not "directed" to the browser... but to xml.
So I'm thinking to play the glue game or maybe put this stuff in a class and create 2 instances.