Extend and customize Drupal functionality with contributed modules. If a module doesn't quite do what you want it to do, if you find a bug or have a suggestion, then join forces and help the module maintainer. Or, share your own by starting a new module.
Drupal 7 driver for SQL Server and SQL Azure
Drupal 7 driver for Microsoft SQL Server database engines. It supports both SQL Server (version 2008 and later), and SQL Azure, part of Microsoft Azure cloud platform.
Installation instructions
Installation instructions are available as part of the release notes.
Sponsors
This work is supported by Commerce Guys, provider of innovative ecommerce solutions for Drupal.
DBTNG Migrator
One of the most exciting new features about Drupal 7 is the object orientated database layer, or Database: The Next Generation (DBTNG) as it was code named. For the first time in Drupal's history, you can now connect to several different databases of different server types at the same time. All using Drupal's database framework.
Drupal now has the ability to migrate an entire database from one server type to another! Thats right, Drupal can migrate itself from MySQL to PostgreSQL and back or even to SQLite! This opens up a lot of opportunity for market. Are you paying to much for hosting? Is your sight just a poster site? Migrate to SQLite. Have you inherited a client that runs PostgreSQL but you have no idea how to use it? Migrate to MySQL. Want to see if PostgreSQL runs your application better than any other server? Migrate to PostgreSQL.
This module is a UI and Drush interface to replicate a database from one database to another independant of what kind of database server they are. So long as ther are support by Drupal, you can migrate to them, including non-SQL stuff!
Oracle driver
This is a driver that allows Drupal to use an Oracle Database (http://www.oracle.com/database/product_editions.html) instead of MySQL as the primary backend.
To create drupal nodes in a MySQL backend from Oracle tables you should use somenthing like http://drupal.org/project/migrate project, which is a robust data migration solution.
Eventually you can even store your site "files" directory inside Oracle with this module:
http://oranfs.sourceforge.net/ (let's say to have Oracle RMAN backup all your user data or
to search on it with the Oracle Text engine) or even use http://drupal.org/project/storage_api to implement an oracle backend for file storage.
A drupal_api PL/SQL package is also available to write/read drupal 6.x nodes and CCK fields, from PL/SQL procedures. You can write things like:
declare
v_node
begin
v_node:= drupal_api.new_node(p_title => 'Lorem ipsum',
p_type => 'my_news_ct',
p_body => 'lorem......',
p_language => 'en');
drupal_api.set_node_field(v_node,'publish_from_date', sysdate);
for news in (select * from table(drupal_api.get_nodes_by_type('my_news_ct'))) loop
if drupal_api.get_node_dat_field(news,'publish_from_date') < sysdate then
.... do whaterver ....
CouchDB Integration
The CouchDB module provides API access to any Couch Database. The API exposes a majority of the Database, Document, Design and Views API. The CouchDB module when enabled does not do anything. It provides a library to build additional functionality or applications.
The couchdb_watchdog module is a sample implementation of using Drupal with CouchDB.
Please help solidify the development release into a full 7.x release by logging issues and testing the module out.
This module is currently being support for Drupal 7. If there is enough interest, the functionality will be back ported to Drupal 6.
This project is sponsored by BitSprout LLC
EntityFieldQuery Extra Fields
Warning : This module abuses EntityFieldQuery to return data from your database. It does not work with entities or any modules that build on them.
It allows you to use addField within an EntityFieldQueryExtraFields object (extends EntityFieldQuery objects). Initially EntityFieldQuery only gives you back the entity id, bundle and entity type. This module adds an extra layer on top of that without doing some extra entity_loads! Important if you want to work with massive amounts of data and you want to reduce the sql queries. Since EFQ already queries the database for this information, why not alter that query to also give you some additional fields. This means that not a single extra query will be performed to get that data.
A word of caution, if you rely on some post-formatting/post-loading that happens in entity_load or similar functions, this module won't take care of that. You have to ensure the validity of the retrieved data yourselves.
Example
Fetching the node title
$query = new EntityFieldQueryExtraFields();
$result = $query->entityCondition('entity_type', 'node')
->propertyCondition('type', 'my_bundle_type')
->propertyCondition('status', 1)
->addExtraField('field_myfield', value', value')
->addExtraField('field_mynodereffield', nid', nid')
->addExtraField('', 'title', 'title', 'node')
FileMaker
The filemaker module lets you build FileMaker web applications through Drupal.
Version 7 Features
- Create, find, browse, and edit modes
- Rich set of permissions
- Choice of interface for anonymous users
- Dynamic default values in find and create mode
- Integration with actions and triggers
- Support for most types of FileMaker value lists
- Unlimited number of reusable connections to FileMaker database
Version 7 Requirements (FileMaker)
- FileMaker server
- FileMaker user account with with XML extended privileges
- FX.php (https://github.com/yodarunamok/fxphp)
Version 7 Dependencies (Drupal)
- Libraries module
Version 6 Features
- Create, find, browse, and edit modes
- Rich set of permissions
- Choice of interface for anonymous users
- Dynamic default values in find and create mode
- Integration with actions and triggers
- Integration with tokens
- Support for FileMaker portals
- FileMaker scripts - cron, triggers, and custom buttons
- Support for all types of FileMaker value lists
- Unlimited number of reusable connections to FileMaker database
Version 6 Requirements (FileMaker)
Ming (a MongoDB wrapper)
Ming is an API for working with data in MongoDB. It was designed to allow rapid construction of MongoDB-based apps in Drupal, where Field integration is not required.
Ming is a wrapper around the PHP Mongo classes, which adds some additional capabilities and behaviours. In addition to what raw Mongo support provides, Ming has the following features:
- Preconfigure and connect to multiple persistent connections, from multiple Mongo database sources, using hooks, site variables, at runtime, or from the Mongodb module
- Simple wrappers around common Mongo tasks (Insert, Upsert, Delete, Find), including some common variants
- Shortcuts for accessing objects by MongoID, without the need to instantiate MongoID classes
- A scaffold Class (Item) for building, saving and working with data
Ming does not require the Mongodb module to be installed.
Riak Field Storage
The Riak Field Storage module stores fields in a Riak database. EntityFieldQuery is not yet implemented.
Couchbase
The Couchbase module provides integration with Couchbase 2.0 and above. This module
consists of helper functions to instantiate couchbase connections from the $conf['couchbase']
variable in settings.php.
The module also provides a REST interface to Management REST API provided by Couchbase.
The Management REST API is described here
Finally, the module provides an api for accessing creating and deleting Couchbase Views.
*These functions will probably go away once the php-ext-couchbase matures. Currently, the php-ext-couchbase library doesn't support creating/deleting views.*
The module couchbase_watchdog is an example implementation of watchdog in Couchbase.
It serves as an example of what can be done with the API.
Since Couchbase 2.0 is in active development, this module will not see a stable release until such time.
Please help test and report bugs back
The couchbase_watchdog module is a sample implementation of using Drupal with Couchbase.
Please help solidify the development release into a full 7.x release by logging issues and testing the module out.
MongoDB Spaces Overrides
Spaces Overrides mongodb storage backend for high performance and scalability of large spaces-enabled sites.
Large (>100k records) spaces_overrides tables in MySQL perform slowly (even with optimal indexes) and performance appears to be O(n). In MongoDB, with minimal indexes, spaces_override queries are 1-2 orders of magnitude faster than MySQL (>100k records) and performance appears to be approximately O(1).
Development of this module is sponsored by AllPlayers.com.
PostgreSQL User Signature
Overview
The Postgres Signature module making all database connections and queries "personalized". If you have not only default database user but also SQL users with the names as Drupal users, all requests would be performed with corresponding SQL-user name.
Queries from user #1 and from anonymous users authored by default connection string.
Adding and removing Drupal users also leads to do the same on database level.
On administration pages there is a functional to create (or delete) in bulk SQL users to reflect existing Drupal users.
Supports PostgreSQL database only. Currently working on a production system with PostgreSQL version 9.1 .
Installation and usage
Install as a regular module, then visit administration pages under admin/config/people to tune default user creation command.
If needed, prior to module removal you may visit admin page and do bulk remove of SQL users which you do not need anymore.
Supported by Druler.
dbinfo
What this Module does for you:
DBinfo adds a small status report item to the /admin/status/reports page of your Drupal website.
DBinfo tells you the database connection information for any configured databases Drupal has connection info for. Optionally, it can test the connection on status report page load.
Requirements
This module requires Ctools in order to generate the collapsible reports.
As a security precaution the db password always displays as [omitted] from the report page.
All other database information is considered administrator level knowledge.
Feature requests, issues, patches are all welcome.
Doctrine Object Relational Mapper
This module is a set of base component and connectors to integrate Doctrine ORM with Drupal Core. The Doctrine Object Relational Mapper sits on top of a powerful database abstraction layer (DBAL). One of its key features is the option to write database queries in a proprietary object oriented SQL dialect called Doctrine Query Language (DQL), inspired by Hibernates HQL.
http://www.doctrine-project.org/projects/orm.html
This module provides integration with Doctrine ORM, giving developers a powerful alternative to SQL that maintains flexibility without requiring unnecessary code duplication.
Designed with a few goal in mind:
- Maintainability: the software will evolves with the Doctrine library and with versions of Drupal, the code base is written to cope with a changed environment. Test suit is the same quality as the software itself, allowing the isolation of defect for further correction and ensure new requirements will not break anything, thus, making future maintenance easier.
- Dependability: it does what it claims, and is trustworthy. The code is optimized to run for limited resources computers with special care to cache optimizations or any form of I/O which are costly.
Poor-man failover support
This special database engine implementation handles failover between a set
of database connections. The current master is centrally stored in a
pluggeable failover agent.
Portable database dump
A pair of Drush commands to import and export portable cross-database dumps of Drupal websites, supporting consistent import/export across all the database engines that Drupal 7 supports (MySQL, PostgreSQL, SQLite, SQL Server, Oracle, ...).
Quick start
Take a Drupal website (any database engine will do), and export it in a portable format:
$ drush portabledb-export > mysite.dumpNow change the settings.php file to point to an other type of database engine, and reimport the dump:
$ drush portabledb-import mysite.dumpDB2 Driver
Drupal 6 Driver for IBM DB2 DataServer. This Driver provides an interface to IBM DB2 DataServer Version 9.7 and above.
Installation
Download and setup a web server(for example: Apache)
Set up a Web server as per the configuration recommended by Drupal (http://drupal.org/requirements).
Download and install DB2
Download DB2 version 9.7 from http://www-01.ibm.com/software/data/db2/express/download.html?S_CMP=ECDD..., use the resources available in the link to get started with DB2.
Configure php for DB2
Follow the steps below for respective platforms
Linux Platforms
Download the latest pdo_ibm extension for db2 from http://pecl.php.net/package/PDO_IBM
Install pdo_ibm issuing the following commands from the downloaded tar
phpize --clean
phpize
./configure --with-pdo-ibm=/home/db2inst1/sqllib #sqllib directory will be present under you DB2 instance users home
make clean
make
make install
Windows platform
Use the php_pdo_ibm.dll shipped in your DB2 installation package(In case of requirement of different version of pdo_ibm.dll write to opendev@us.ibm.com,to get the appropriate dll ).
Place the php_pdo_ibm.dll in the php extensions directory
Common for all platforms
Add the below line in php.ini file
extension=php_pdo_ibm.dll.
crud table
this module provide a accessing your tables in profile page. tab dolphin
Allows the user to both create new records and edit existing records
since this form is used multiple times in this file, I have made it a function that is easily reusable.
dbconnect
This module uses the target databases to set a number of 'extra' databases in which the users can connect at login. The optional connection to an extra database is stored in the user data array so if you want to retrieve data from the extra database you connected at login you can use:db_query($query, $args, array('target' => $user->data['actualdb']));
This may be useful when you have multiple databases with the same structure and you want to extract info from each depending on the user selection. So you can have for example branch databases and some users can access to one or many of they.
DBLIB driver for SQL Server
This driver is a fork of sqlsrv, it's pretty much similar except for using dblib rather than sqlsrv driver, which could be handy if Drupal is installed on a *nix environment.
Numeric Identified Entity
This module provides numeric validation of Entities in Drupal that use serial identifiers to load their entities. While most entities use this method for identifying their entities, Drupal core doesn't actually provide a validation mechanism to do this and instead, relies on the database to facilitate this (See #1003788: PDOException:Invalid text representation when attempting to load an entity with a string or non-scalar ID). This can lead to varied results.
This module fixes this issue by providing an alternate Entity Class to extend numeric identified entities from. It supports default core and entity cache.





