how to manage a team to make a site using drupal? - drupal

we have a team and want to make a site using drupal.
as i see all the changes will be saved in database. so how we can have a version control?
should we use of a cvs that take care of databases?
if yes, how can i make a db cvs server?
thanks.

Yes, use git. As far as the database goes, you're best off using update hooks to capture schema changes in code. If you're using cck you're not going to be able to do that reliably. It's a bummer really.
http://api.drupal.org/api/function/hook_update_N

to port views, content type, contexts you can use http://drupal.org/project/features
Devel http://drupal.org/project/devel have tool to make record macros
But realy there is no universal tool for this.

You should utilize Git for team development work for code.
As far as version controlling a database, you are not going to want to do that. It is a lot of headache.

You can move a lot of the stuff that normally goes in the database into the code instead. If you use the strongarm module along with the features module you can save settings, content types views and much more as code and put it into your VCS.

Related

Replicating a Drupal website without overwritting destination database

I'm working on a large Drupal website under two environments -Development and Stage. While I work in Development, my client enters content in Stage.
My work in Development modifies the database. Then, I need to be really careful when taking my work to Stage -otherwise I could affect my client's content.
This is painful and inefficient. Do you know of other options for this particular scenario? Perhaps a database merging tool? Thank you for your advice.
This is an inherent issue with Drupal, the storing of configuration and content in the same database. There are methods to help mitigate the issue, (like the Features module that helps you compartmentalize configuration changes) but they are very dependent on module support.
On our last site we tried using the Features module and the Deployment module but so many of the modules we wanted to use didn't have support for Deployment that we ended up not going that route and just manually duplicate configuration changes by hand.
Depending on what your client is entering you might be able to use some handy mysql to solve the issue, can you tell us a bit more about your scenario?
There are two kinds of data, configuration and user content. For user content, set autoincrement to two and use even and odd for dev / staging. For configuration write update hooks. Easy.
Try looking at these two former thread on the same issue:
Drupal DATABASE deployment strategies?
How to merge Drupal database changes
You could turn it around and keep copying your staging site's information to new instances of your development site's platform. Miguel Jacq has done a nice write up on achieving this set up. After testing things through you can then set up a thoroughly tested production platform at the production address and copy the staging site over.
Miguel's article: http://greenbeedigital.com.au/content/drupal-deployments-workflows-version-control-drushmake-and-aegir
Aegir: http://community.aegirproject.org
#jhuebsch: that sounds like a disturbing experience. Can you add a list of the afflicted modules and were you sure to use UUID & Strongarm?

Serailising Umbraco settings to the file system and packaging changes for deployment

Does anybody know of an easy way to serialise Umbraco settings (Document Types, Media Types etc) to the file system in order to manage that data within source control?
Note: changes to settings made on the file system need to be easily integrated back into the CMS database.
Also, does anybody know of a way to package up settings from a development environment for rolling out to staging and live environments?
Looking back through my unanswered questions, providing updates where possible.
For reference, you can use uSync to serialise content from Umbraco:
https://our.umbraco.org/projects/developer-tools/usync
There is no method currently other than rolling your own package to do it but it should be relatively straight forward using the API. Check out the "Backing up Document Types" article as a starting point .
Your second point about deployment was something discussed in an open session at the Umbraco Codegarden this year and no conclusion was made that was a one answer fits all.

Lib to build an admin-page from a Database schema?

I'm using ASP.Net and NHibernate to build a website. Now, I need to add some sort of administration functionality, and came to think of an old django tutorial I once ran through. Here the admin page was build for me, and I could customize it as I liked.
I see no reason that I couldn't accomplish the same, somehow, in ASP.Net, when I got my NHibernate schemas, thus reducing all the boilerplate admin-code I need to do. Are there any libs out there, that you think will fill my needs somehow?
Thanks in advance :)
- cwap
CodeSmith is good. It allows you to generate ASP.NET admin pages based on your data classes.
A free alternative is mygeneration

Module development tutorial in Drupal

I'd like to learn how to create modules in drupal- modules which can interact with the user, database, assign permissions, views.
Is there any good video tutorial or a simple sample module which covers these things?
Thanks.
My suggestion would be to pick up a copy of Pro Drupal Development and start working your way through. I think that book is the best one stop option for providing an easy to follow, yet in depth start for learning Drupal development.
If you really wanted to get by without purchasing a book, I would suggest checking out the Lullabot site for whatever free content they have available.
After an initial background, the Drupal api pages should be helpful for you, . Hit the search box in the upper left hand corner for type ahead search to find detailed info on drupal functions. This would be a great resource for getting some more background on the functions googletorp listed. I agree with googletorp that those are a good list of functions to get started with.
It requires some effort to learn how to develop in Drupal. You might be able to find some good videos, but you will only really master this when you get your hands dirty and start coding.
How hard this will be for you, is also highly dependent on your background. A seasoned PHP developer wont find it that difficult to develop with Drupal.
There are some key points that you need to understand though.
The hook system. This is Drupal's way to do OOP. The idea is that modules or Drupal core can define and run hooks when an event happen that other modules want to react to. An example could be the creation of a user or the display of a node. To implement a hook, you simply create a function with the correct name. You need replace the "hook" in the name of the hook with your module name.
Drupal has a lot of API functions and it takes time to find them and learn how to use them. Take your time, as using the right API functions can make a big difference. Drupal has a nice API site
From your description you should take a look at these functions:
hook_user
hook_perms
hook_menu
db_query
In addition to what googletorp and mike munroe already said, check out the module developers guide on drupal.org. On the api site, check out the well documented example modules.
I have learnt drupal from beginner to advanced with CodeKarate. its one of the best website for drupal.
http://www.codekarate.com
There is a very good, easy to follow tutorial on developing JQuery/Javascript modules on Drupal. Check it out as well.

is there an SQLite-based wiki?

I would like to find out if there is wiki software that runs on SQLite.
Sure is.
Instiki
Instiki (What Is Instiki) is a basic
Wiki clone so pretty and easy to set
up, you’ll wonder if it’s really a
wiki. Runs on Rails and focuses on
portability and stability. Supports
file uploads, PDF export, RSS,
multiple users and password
protection. Some use Instiki as a CMS
- Content Management System because of its ability to export static pages.
Fossil, which is a DVCS with many other features (including a wiki) is built on top of Sqlite (in face, made by D. Richard Hipp who wrote Sqlite ). It can be found at: http://www.fossil-scm.org/index.html/doc/tip/www/index.wiki
According to the SQLite Users Page, the CVSTrac program is using SQLite as its internal database structure (you have to follow the link to the CVSTrac site to see the details). I'm sure there are others by hunting around the site.
Wiki::Toolkit can use SQLite as its database.
Mediawiki does, but it is only in the development stage.
Any of the Django ones should be able to, because Django is flexible about which Database backend it uses and SQLite is one of the options.

Resources