bliswebagency / Greeny

An ExpressionEngine 2 addon which will automatically update your absolute upload paths based on your environment
9 stars 2 forks source link

"No previous environments matched" error #5

Open jonathanstegall opened 12 years ago

jonathanstegall commented 12 years ago

Hello,

Currently I'm trying to deploy EE with this setup:

  1. Two developers, each working on a local Mac (native Apache, if that is relevant) with a virtual host for the site - let's call it domain.local.
  2. One dev server (which is a Windows server) with a virtual host - it just runs at an internal IP address we were given.
  3. One production server (also Windows) with a virtual host - it currently runs with an internal hostname until we're ready to switch DNS.

We have config files set up for each environment, and are using a setup to load the environment's config files based on the IP.

Greeny works perfectly when I export the database and files from my Mac (1) onto the dev server (2), but when I follow the same steps from the dev server to production, I get the "No previous environments matched - so nothing was changed. Maybe try relative paths or Deploy Helper..!" message.

Is there anything I can do to resolve this one?

Thanks, Jonathan

bliswebagency commented 12 years ago

Hi Jonathan,

Ok, let's talk about that error message you're getting: Effectively when Greeny displays this, it's because there's been a greater change to the file paths than Greeny expected and rather than "screwing over your website", it just packs up and goes home - leaving you to tidy things up as if it was never installed. This is a much safer approach than trying to make some assumptions.

Given this, I'll need an example of 1 full path to an upload directory for each environment. E.g.

Local: /mystuff/web/client/uploads Dev: /var/www/vhosts/client.com/subdomains/dev/httpdocs/uploads Production: /var/www/vhosts/client.com/httpdocs/uploads

Based on this I can probably tell you why Greeny doesn't like what's going on. Also, it sounds like because you've got 2 devs working from different local setups, this may also be the cause of what's going on.

For example, if your mate has a Greeny log which looks like this:

Local: /mystuff/web/client/uploads Dev: /var/www/vhosts/client.com/subdomains/dev/httpdocs/uploads Production: /var/www/vhosts/client.com/httpdocs/uploads

And you have a Greeny log which looks like this:

Local: C:\mystuff\web\client\uploads Dev: /var/www/vhosts/client.com/subdomains/dev/httpdocs/uploads Production: /var/www/vhosts/client.com/httpdocs/uploads

Now, if you log into the EE CP with paths like "C:\mystuff\web\client\uploads" and Greeny only knows about your mate's paths that look like "/mystuff/web/client/uploads", then you'll get this message you've described.

Based on your scenario, I can see this being a possibility. If you agree, then you could do one of the 2 things below:

  1. Sync your sites. Import your mates SQL into your build and then push this to Dev and Prod.
  2. Manually edit Greeny's log (exp_greeny) and insert the missing environment it doesn't know about

Hopefully that gives you a bit of an idea how to solve your scenario. Please let me know how you go.

jonathanstegall commented 12 years ago

I know it's been a while, but wanted to come back to this one after launching the site.

I assume the info I'm looking for is in exp_greeny. If so, there is only one entry in that table:

greeny_id: 1 dir_path: /Users/{my username}/Sites/projects/{project_name}/public_html/ env_key: NULL

Are you saying I can manually add fields for the other developer, as well as the dev and production servers, into this table?

Thanks so much, Jonathan

bliswebagency commented 12 years ago

That's right - I may end up making a EE screen which allows you to do this in a more user friendly way at some stage but effectively, just add in the paths you want Greeny to know about within that table and then make sure you're both working from that same DB and you should be ok.

Additionally.... I haven't looked into it too much yet, but I believe EE2.4 may actually now make Greeny redundant... It seems that the EllisLab have added an option whereby you can define your upload paths as a Global Config variable. Using that with something like NSM bootstrap would allow you to pretty much define your upload paths dynamically without Greeny. This may also be worth while looking into if Greeny isn't doing the trick.