Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrating from Heroku #210

Open
beydogan opened this issue Sep 19, 2016 · 6 comments
Open

Migrating from Heroku #210

beydogan opened this issue Sep 19, 2016 · 6 comments
Assignees

Comments

@beydogan
Copy link
Contributor

A migrator tool from Heroku would be really handy for people who wants to leave Heroku. I haven't check if this can be done via Heroku API but we can discuss this.

I think it will make easy to onboarding new IC users.

@jvanbaarsen
Copy link
Contributor

@beydogan The first step for this would be a feature where you can import database exports. That way it will make switching from another provider to us a lot easier.

Via this feature, people can make an export from their Heroku PG. And then just upload the file in the IC interface (When they have the PG plugin enabled for their server).

When I'm typing this, I also realise that this implies that we rework the Plugin system. Since some plugins gain extra behaviour.

What do you think about this approach?

@beydogan
Copy link
Contributor Author

beydogan commented Sep 20, 2016

@jvanbaarsen Exporting and importing through IC interface make things easier but still has overhead for people just want to try out IC quickly.

I think most Heroku users are a potential IC user too, so we can do something specific for Heroku. One click migration from Heroku to IC might be a great future but i'm not sure if its fully doable.

I was thinking something like this;

  • User connects their Heroku account to IC with Oauth
  • Selects the app to migrate

Then IC;

  • Creates the app
  • Syncs environment variables(except DATABASE_URL, REDIS_URL etc)
  • Sync domains
  • Imports database from Heroku
  • Adds supported plugins to the app

What do you think about this?

When I'm typing this, I also realise that this implies that we rework the Plugin system. Since some plugins gain extra behaviour.

I haven't checked the Plugin system in IC, i will check it out and reply :)

@jvanbaarsen
Copy link
Contributor

@beydogan I think the following parts can be done with relative ease:

  1. Creating the app
  2. Sync env vars
  3. Sync domains

Without knowing anything about the Heroku API, we might be able to do the following for the database:

  1. Assume user is running Postgres
  2. Link the Postgres plugin to the app (And install it on the server if it was not already installed)
  3. Export the database from Heroku
  4. Import the database in our system

Adding supported plugins will be hard at this time I think. So I would propose to do that afterwards. Let's try and break this up in small updates. So we don't have to ship one massive thing :-)

I can see the first step being:

  1. Connect your Heroku account (Oauth info has to be configurable within the IC interface)
  2. See apps you have running on Heroku
  3. Select app to import
  4. Create app in our interface

The next logical step after the above is implemented would be to work on syncing the ENV vars and domains in the creation step.

What do you think?

@beydogan
Copy link
Contributor Author

@jvanbaarsen It looks good for me, I will have sometime to work on this in this and next week. We can worry about plugins later, as you said just assume user is using Postgres, that will cover most of the users.(for now)

So, I will start by Heroku Oauth integration and see how it goes. Will keep you updated.

@jvanbaarsen
Copy link
Contributor

@beydogan Perfect! Let me know if you need any help :-)

@retronoodle
Copy link

+1 on the database import app. (for those coming from Heroku, as well as those not coming from Heroku, like me)

Consider the use case: You have a couple apps on your server, and one of them gets big, and you want to move it to another server including data.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants