Concrete must be installed in an empty database?

Permalink 1 user found helpful
Call me crazy, but shouldn't there be a way to install this alongside something else? I'm running three sites with three different systems but only have access to one database...

View Replies:
Mnkras replied on at Permalink Reply
Mnkras
well for now you can dump the database delete everything install concrete5 then import the dump
SigmaAlphaPi replied on at Permalink Reply
SigmaAlphaPi
Okay, warming that up a little ...

A friend of mine told me about concrete5 and I wanted to test it. Same problem as ghost had.

It should be easy to put some kind of prefix to the installation, shouldn't it?

I do have a test account at c5host but an own installation may be a running website once.

Thank you for considering any solution to this.
Remo replied on at Permalink Reply
Remo
no prefix isn't that easy..

it would have been easy at the beginning but not now.. There are tons of addons, lots of code and all of that stuff doesn't use any kind of prefix. We would have to modify a lot of code, all addons etc.

it would be easy to remove the check though, but not something I recommend to do..

Creating a new database is always the best way, easy to backup, clean separation, no overhead, better overview.

If you just want to show Concrete5, you can always use the demo on concrete5.org, takes less than a minute to set up an account.
SigmaAlphaPi replied on at Permalink Reply
SigmaAlphaPi
Hej Remo (and all),

you may be right, that that would be much work to do, but I think, that that'll be worth it.

E.g. you don't have the chance to let different instances of C5 share one DB.

Who guarantees, that (by coincidence) one of my dumped tables has the same name like one of the C5 tables. Reimported dump causes problems, so even that solution isn't really one.
Remo replied on at Permalink Reply
Remo
Well, it's not worth my time for sure. I'd never work with a hosting company which offers me a single database..

Updating the core and _all_ addons at the same time is an incredible effort. I could easily move 100 sites from one server to another during that time.

But feel free to plan and modify all that stuff!
SigmaAlphaPi replied on at Permalink Reply
SigmaAlphaPi
Yeah, you may not, but a lot of people who may want to use C5 do.

Many will dump C5, some will end up here and dump their db and a small amount will make a mistake doing that, blaming C5 for it.

I don't know, but with not having that feature, C5 doesn't fit the requirements for an easy to use CMS (what it certainly is).
Remo replied on at Permalink Reply
Remo
I know exactly how often this topic came up, it's just a minority for sure!

There are a few for sure as well, but I can look at this issue a bit selfish: I don't need it, so why should I spend more than a week of work for something I don't care about? No one pays me, I would get like one or two e-mails saying "thanks" and that's it!

It's possible that a core team member thinks different, I don't.
melat0nin replied on at Permalink Reply
melat0nin
This seems like a silly limitation - I want to install c5 on my company's server to show it off, which also has other stuff (mailing list software and a news db app) which share the database. I don't want to risk hosing that stuff just so I can show colleagues c5!
Mnkras replied on at Permalink Reply
Mnkras
export the entire database, drop all tables install c5, import what you exported before, or you can hack the installer

EDIT: in the /concrete/single_pages/install.php find this line

<div class="test <? if ($mysqlTest) { ?>passed<? } else { ?>fail<? } ?>"><?=t('MySQL Available')?>


change it to
<div class="test <? if ($mysqlTest) { ?>passed<? } else { ?>passed<? } ?>"><?=t('MySQL Available')?>


see if that works
melat0nin replied on at Permalink Reply
melat0nin
In the end I just took the risk and dumped the database and reinjected it via phpMyAdmin, which worked perfectly.
Hammertime replied on at Permalink Reply
Actually to remove this check you need to look in

concrete\controllers\install.php

And on Line 192, comment out this line:

$e->add(t('There are already %s tables in this database. Concrete must be installed in an empty database.', count($num)));
Brainakazariua replied on at Permalink Reply
Brainakazariua
I've got to say it's not very good what you do. Putting multiple sites in a single database.
It's best to get a new database for each site, that way if something goes wrong on one site regarding the database not all sites go down.

A hosting provider which only hands you one database regardless of your amounts of sites can't be good.
Jimmed replied on at Permalink Reply
I completely agree that on a semantic/philosophical level, each application should receive its own database, purely for the sake of encapsulation (and the implicit benefits with respect to deployment and security).

However, this is not always a possibility. Simply stating that a hosting company who only provide a single database is a bad hosting company is an entirely wrong attitude to take. I unfortunately use one such hosting company - my decision to do so was based entirely on minimising price - and was incredibly disappointed when concrete5's installer complained about it.

I would suggest, as an alternative to preventing installation, simply /warning/ the user that their target database is not empty and asking that they confirm their awareness of the risks involved before continuing.

(N.B. I'm perfectly happy to just hack around the issue - this is just my two cents)