Existe-t-il des plans pour que Wordpress prenne en charge des bases de données autres que MySQL?

8

J'ai longtemps souhaité que Wordpress prenne en charge SQL Server, mais il serait également vraiment étonnant qu'il prenne en charge MongoDB (par exemple.)

Ma question est la suivante: est -il prévu de le faire?

L'équipe principale de Wordpress est-elle si engagée envers MySQL qu'il n'est pas prévu d'offrir une quelconque forme de support pour d'autres bases de données (au moins bientôt?)

Ce message me porte à croire qu'une telle chose ne se produira pas:

http://codex.wordpress.org/Using_Alternative_Databases

Cependant, à titre d'exemple (alors que je préfère de loin Wordpress), Drupal 7 dispose désormais d'un ...

Couche d'abstraction de base de données, permettant l'utilisation de nombreuses bases de données, telles que Maria DB, Microsoft SQL Server, MongoDB, Oracle, MySQL, PostgreSQL ou SQLite

http://drupal.org/node/1015646

Justin Jenkins
la source

Réponses:

5

Bonjour @Justin Jenkins:

Il est très difficile de dire si WordPress le supportera ou non, car ils peuvent prendre ces décisions et nous ne le pouvons pas. Cependant, nous pouvons examiner certaines preuves.

Serveur SQL?

Pour SQL Server, d'une part, un ticket trac a été débattu et bloqué il y a un an; depuis lors, plus récemment, il semble qu'Automattic et Microsoft explorent des relations commerciales:

Mongo DB?

Pour Mongo DB, il y avait une question de support le proposant mais pas de reconnaissance officielle et pas de véritable traction:

Prévoir?

Donc, SQL Server semble plus probable que MongoDB, au moins d'Automattic à court terme, mais ce n'est qu'une supposition et pas une sur laquelle je parierais réellement.

Et les plugins?

Plus important encore, il faudrait considérer qu'un avantage majeur de WordPress est l'énorme référentiel de plugins gratuits et que beaucoup d'entre eux codent directement MySQL et cesseraient donc de fonctionner et atténueraient une grande partie des avantages de WordPress.

Modules Drupal et leur prise en charge d'autres bases de données en plus de MySQL

De plus, dans le monde Drupal, vous avez une prise en charge de plusieurs bases de données, mais la réalité est que la grande majorité des modules Drupal qui interagissent avec la base de données ne prennent en charge que MySQL. La prise en charge de plusieurs bases de données nécessite beaucoup plus d'efforts et la plupart des développeurs de modules Drupal n'ont tout simplement pas les ressources ni même l'envie de créer des plugins gratuits avec ces niveaux de support et je m'attendrais à ce que ce soit le cas avec WordPress.

Cas d'utilisation réels?

Ce qui m'amène à une question honnête: quels sont les cas d'utilisation réels pour cela? En tant que technologue moi-même, je considère toujours ces types comme vraiment cool, mais en tant qu'entrepreneur, je les regarde aussi de manière pragmatique et demande des cas d'utilisation. Y a-t-il des situations où MySQL n'est vraiment pas une option mais SQL Server l'est? Les installations dans lesquelles les avantages de Mongo DB dépasseraient les inconvénients?

(Et tout aussi important, y a-t-il des entreprises qui en ont vraiment besoin et qui sont prêtes à dépenser de l'argent pour soutenir le développement et la maintenance? Plus précisément, je serais curieux de connaître vos motivations? Encore une fois, c'est une question honnête; les études de marché vraiment, et de ne pas vous défier de quelque façon que ce soit pour avoir demandé.)

Prochaines étapes?

Si vous voulez l'entendre davantage de la bouche du cheval, je vous suggère de demander sur la liste de diffusion wp-hackers et de publier un ticket de proposition pour MongoDB sur trac .

MISE À JOUR

Je viens de tomber sur cette page sur Microsoft.com qui prétend avoir un correctif pour utiliser SQL Server avec WordPress. Je ne l'ai pas essayé, je ne peux donc pas en témoigner, bien que voici la page WordPress de Microsoft:

MikeSchinkel
la source
Merci pour la réponse détaillée. Les nouvelles de SQL Server sont assez intéressantes ... la principale raison pour laquelle je pose la question est parce que dans un environnement qui exécute SQL Server (ou MongoDB, par exemple) lorsque tout le reste de nos données ... intranet, utilisateurs, cms, etc., etc, sont SQL Server, cela rend le fait que Wordpress ne prend en charge que MySQL très limitant (par exemple, il est difficile de synchroniser ou d'utilisateurs, ou de partager des modèles, etc.) Le fait d'avoir les données dorsales stockées dans SQL Server ouvrirait une énorme options pour nous.!
Justin Jenkins
@Justin Jenkins - Merci pour l'explication de la raison pour laquelle vous voulez cela; pour minimiser les serveurs et la maintenance. Une autre question honnête: le besoin de SQL Server / Mongo DB est-il suffisamment important pour accéder à des fonctionnalités limitées à partir de WordPress? (c'est-à-dire moins de prise en charge des plugins.)
MikeSchinkel
7

Codec

Voir: http://codex.wordpress.org/Using_Alternative_Databases#Solutions/

Plugin Alternative

J'ai utilisé ce plugin: http://wordpress.org/extend/plugins/pdo-for-wordpress/ récemment pour exécuter WordPress sur mon NAS en utilisant une base de données SQLITE dans le backend au lieu de MySQL, ce qui fonctionnait très bien.

Quelles bases de données sont prises en charge?

Actuellement, la couche de base prend en charge toute base de données prise en charge par PDO.

  • MS SQL Server (PDO) - Microsoft SQL Server et fonctions Sybase (PDO_DBLIB)
  • Firebird / Interbase (PDO) - Fonctions Firebird / Interbase (PDO_FIREBIRD)
  • IBM (PDO) - Fonctions IBM (PDO_IBM)
  • Informix (PDO) - Fonctions Informix (PDO_INFORMIX)
  • MySQL (PDO) - Fonctions MySQL (PDO_MYSQL)
  • Oracle (PDO) - Fonctions Oracle (PDO_OCI)
  • ODBC et DB2 (PDO) - Fonctions ODBC et DB2 (PDO_ODBC)
  • PostgreSQL (PDO) - Fonctions PostgreSQL (PDO_PGSQL)
  • SQLite (PDO) - Fonctions SQLite (PDO_SQLITE)
  • Notez que via l'extension PDO_ODBC, toutes les bases de données prises en charge par ODBC sont également prises en charge, sous réserve que des pilotes soient disponibles

TOUTEFOIS, chaque base de données a besoin de son propre pilote et actuellement les seuls pilotes écrits pour ce plugin sont pour

  • sqlite et
  • mysql

Donc, pour MySQL, quelqu'un devrait écrire un pilote

edelwater
la source
Merci pour les informations sur PDO (SQLite) pour WordPress, semble intéressant.
Justin Jenkins
1
Ce plugin n'a pas été touché depuis plus de deux ans et n'a aucun support pour WP 3.x. C'est une découverte intéressante, et ce serait bien si quelqu'un pouvait le mettre à jour et le déboguer, mais en l'état, ce n'est pas une solution très utile. Il y a une poignée de messages sur les forums où les gens l'ont piraté pour le rendre semi-fonctionnel, mais cela semble beaucoup plus compliqué que cela ne vaut.
SickHippie
2

J'ai fait des recherches sur les possibilités de migrer WordPress vers MongoDB ou une autre base de données NoSQL pour le rendre vraiment évolutif. Les coutures sont un bon moyen (malheureusement pas court) pour y parvenir.

Pour commencer, j'ai fait un petit script en PHP qui migre les tables MySQL vers les collections Mongo en faisant quelques agrégations tout en préservant les dépendances relationnelles d'origine:

https://github.com/virtimus/mysql2mongo

La prochaine étape sur laquelle je travaille maintenant est de faire comprendre à MongoDB quelque chose qui serait "proche" de SQL - je l'ai nommé "nSQL" - c'est un dialecte basé sur json de SQL opérant sur des collections hiérarchiques

https://github.com/virtimus/nsqlserver

C'est un travail en cours - rien n'est encore engagé - mais j'ai déjà une version protype w hors ligne qui traite les requêtes nSQL simples du formulaire:

db.runCommand(
    {nsQL:
        {
           sel:['id','emailUse','emailType','emailSubject'],    // properties/colums to return
           flt:{emailUse:0,emailType:'test'},           // filter (where phrase equivalent)
           ctb:'wp_eshop_emails'                // table equivalent (can be agregated in collection as path)
        },
        cid:ci,                         //connection id
        sid:si                          //session id
    })

Il peut fonctionner à la fois sur MySQL, MongoDB ou presque n'importe quel autre backend relationnel / non relationnel. Il s'agit de la compilation de deux projets: - un fork MongoDB (version MongoDB légèrement étendue par certaines commandes "nSQL") - un fork du projet SQLRelay (gestion du proxy DB relationnel de nombreux backends SQL)

OK - donc le composant ci-dessus serait la partie principale du travail. Il y a beaucoup de développement pour le rendre pleinement fonctionnel (gestion des agrégations, du tri, des filtres de sous-documents, des insertions / mises à jour / suppressions, peut-être aussi des jointures, etc.) L'effet final semble être très prometteur en général - pas seulement pour WP. Imaginez par exemple une migration SQL vers NoSQL en utilisant plusieurs commandes simples "INSERT FROM INTO" ...

Le reste du travail serait de le connecter à WordPress - via une sorte de traducteur SQL2NSQL (c'est-à-dire ce plugin PDO ci-dessus)

Y a-t-il quelqu'un intéressé? Aide à l'analyse / développement? Investissement financier?

Virtimus
la source
-1

PDO pour WordPress fonctionne très bien si cela ne vous dérange pas d'être bloqué dans WP 2.9.1RC1 car il n'est pas pris en charge dans WP 3.x. Malheureusement, de nombreux plugins sont écrits pour fonctionner uniquement sur WP 3.x

IronHammer
la source