Why not support MySQL?


(Meow) #1

My database is on my friend’s host so I cannot decide what the database can be. That is MySQL, but Discourse currently does not support it. Why not support it? The announcement says it is old-fashion, but it is still the most popular.


Is it possible to change into mysql
(Dan Neumann) #2

By being database-agnostic, you lose the ability to utilize the advanced features of any single database.

MySQL is prevalent because everything runs on MySQL because MySQL is prevalent because everything runs on MySQL.

But that reality has been shifting since the early 2000s. Discourse is among modern software that is challenging the incumbent, and it’s the only way you’ll ever advanced beyond incumbent technology.


(Jeff Atwood) #3

The main reason is search. Postgres has much better full-text search capability.

There are also concerns about licensing with Oracle owning MySQL.


Sphinx search for Discourse
Should search prioritize recent topics over older topics?
(Meow) #4

I never said MySQL is my favourite. Please do not misunderstand.


(Meow) #5

It means that I cannot build a Discourse because I don’t have the right to choose the database. That is kind of punishments, as there is no option.


(Dan Neumann) #6

You don’t get to choose the database with most software.

vBulletin, IPBoard, Wordpress, and other flagship applications in this domain couple you to MySQL.

phpbb initially depended on MySQL. But with great effort, it managed to become database-agnostic.

There’s development overhead in being database agnostic, especially while what, three people(?) worked on getting Discourse ready for its public release. It’s certainly a viable pursuit for Discourse in the long term, especially with the support of the open source community!

But I invite you to not feel punished. :slight_smile:


(Meow) #7

Yes you can invite. The problem is money.


(Régis Hanol) #8

Well, postgres is free too.


(Meow) #9

I actually meant buying a space which supports PostgreSQL.


(Sam Saffron) #10

Being database agnostic is not a goal for Discourse, we are happy to use hstore and fulltext. We are happy to use postgres specific optimisations instead of avoiding them just to stay db agnostic.

I dislike the idea of developing for the lowest common denominator or the large amount of double work and complicated process it woud introduce.


(Doug Moore) #11

And what if they used MySQL but your host didn’t have MySQL? You’re not being punished. You are punishing them because you chose a host that only has MySQL


(Adam Davis) #12

It is missing features discourse wants, and developing for multiple databases significantly increases development time in coding, debugging, testing, performance tuning, and maintenance. Also most of the Ruby on Rails community has adopted PostgreSQL, so once the choice of language and platform was made the DB fell into place with it.

As an open source project, though, you are free to adapt it to MySQL, and I know there are many developers that would love for you to do that work. If you aren’t in a position to do that, then just wait a year and someone else will have done it for you.

It is unlikely to be supported in the core any time soon for the reasons given above, and because there are huge lists of features with a much higher priority.


(Meow) #13

My friend gives me a small space because I designed a website for him. I cannot decide or even add a database. I don’t have money to host a complete space now.


(Chris S.) #15

Nobody trusts mySQL since Oracle took over, which leaves you with what on linux? Postgres, and perhaps MongoDB or CouchDB if you’re going NOSQL.


(finid) #16

Considering that the Free Software community has started migrating from MySQL to MariaDB, not using MySQL from the start is a good decision.

By the end of this year, MariaBD will be the default DB on virtually all Linux distributions.


(Sam Saffron) #17

Sorry, don’t mean to get into some religious war here or just be contrary, however do you have any thing to back that up ?


(Dean Taylor) #18

I too was a little shocked by this statement, after a quick search I found this article which seems relevant: Oracle who? Fedora & openSUSE will replace MySQL with MariaDB | ZDNet


(finid) #19

Yep, MariaDB will be the default in Fedora 19. To me, it’s not religious, just stating a fact. And when that happens, you know all distros based on Fedora will be no different. Ubuntu is not far behind.

See Fedora 19 features . Just search for “maria.” The switch is 95% complete.


(Brad Westness) #20

Although MariaDB is a binary compatible drop-in replacement for MySQL so even if you started a MySQL project today you could just switch to MariaDB painlessly at any point.


(Dave Evans) #21

This is somewhat frustrating as a potential user because AWS provides MySQL instances but not Postgres.