Parse Server migration without tool - heroku

I'm working to revive an app that was originally hosted on Parse. I have access to a Bitbucket with the app code but the database itself was not migrated before Parse.com shut down. I would like to run the app through Parse Server (using mlab and heroku) but all documentation I've found online requires use of the Parse migration tool (Which is no longer available).
I understand that I can use the Parse Server example project on github and paste in my own app code to set up my app. Do I do paste in my code before or after deploying to Heroku/mlab? Also, which files should I keep from the parse-server-example and which should I delete? Are there other steps I should be aware of that become necessary without access to the Parse migration tool?

Unfortunately you can't migrate your database off of the Parse.com hosted service after January 30th, 2017.
Since you don't have a database to migrate, you can start a new Parse Server project from scratch. You can just follow the Getting Started With Heroku + mLab Development steps on the parse-server-example project, and add any existing cloud functions to the /cloud directory once you've cloned the project.

Related

How to deploy Laravel 8 google cloud run with google cloud database

Iam looking for help to containerize a laravel application with docker, running it locally and make it deployable to gcloud Run, connected to a gcloud database.
My application is an API, build with laravel, and so far i have just used the docker-compose/sail package, that comes with laravel 8, in the development.
Here is what i want to achieve:
Laravel app running on gcloud Run.
Database in gcloud, Mysql, PostgreSQL or SQL server. (prefer Mysql).
Enviroment stored in gcloud.
My problem is can find any info if or how to use/rewrite the docker-composer file i laravel 8, create a Dockerfile or cloudbuild file, and build it for gcloud.
Maybe i could add something like this in a cloudbuild.yml file:
#cloudbuild.yml
steps:
# running docker-compose
- name: 'docker/compose:1.26.2'
args: ['up', '-d']
Any help/guidanceis is appreciated.
As mentioned in the comments to this question you can check this video that explains how you can use docker-composer, laravel to deploy an app to Cloud Run with a step-by-step tutorial.
As per database connection to said app, the Connecting from Cloud Run (fully managed) to Cloud SQL documentation is quite complete on that matter and for secret management I found this article that explains how to implement secret manager into Cloud Run.
I know this answer is basically just links to the documentation and articles, but I believe all the information you need to implement your app into Cloud Run is in those.

Parse Server Migration, Swapping Client Code

As a server rookie and Parse user, I need to migrate and I intend to migrate to Parse Server, likely with Heroku and mLab.
Once I have clicked Migrate and Finalise in the Parse Dashboard, all data from my original Parse client code goes to the new database, right?
Once migrated, I can just push an update of my client code with the new Parse Server SDK pointing to the new server?
My main over ruling question is do I need to do any management on the client side, sending data to both servers? Or does Parse migration handle this?
I think you are mixing two different things. Read the tutorial
Simply
Step 1
You should move your data from Parse.com to self hosted database (mLab or mongoDB and more...), this step means that api.parse.com will use the "external" database but you will still use the code and server from Parse.com (when you send query to your app it goes to api.parse.com and than it access the database) - do this till end of April 2016
Step2 move from api.parse.com to your own instance of Parse server (the one you download from github or install it on heroku). You will need change you code in your app because it wont use api.parse.com fro mthis point... - till end of July 2016
On github the developers still say that it is not "production ready". You should only migrate your database and build the whole server later. You can read the discussion here

How to move cloud code from parse.com to heroku

I have moved parse sever from parse.com to heroku. Everything is working fine except cloud code('cloud/main.js' file).
I have replaced "main.js" of parse.com with "main.js" of parse server code and deployed on heroku, but it is not working. Getting following error when I make request from my mobile app
{"code":1,"message":"Internal server error."} (Code: 1, Version: x.xx.x)
Any idea?
Note:
I've followed following link for migrating parse server
https://learnappmaking.com/how-to-migrate-parse-app-parse-server-heroku-mongolab/
Migrating cloud code can range in difficulty depending on how involved that code is. Here's a workflow for validating your code:
1) Check that you can build your Heroku app locally with the right Node version.
2) Comment out all of your cloud code. You want to start introducing your code in parts and make sure it compiles with each re-introduced function.
3) Install the node modules for each service that you use. If you use stripe/mailgun or any other package, add them in your package.json file and run npm install. Then include them in your main.js file with the require('packageName').
4) The cloud server uses Express.js version 4.2 and a Parse.com runs Express version 2.0 or 3.0 but not 4.0. If you use any middlewear then you need to change it to the proper Express 4.0 syntax/methodology.
5) There is no support for cloud jobs so rename all your *.job functions to *.define and comment properly so you can come back to them later. If you did not use cloud jobs then don't worry.
6) If you did use cloud jobs, now you need to setup a heroku worker/scheduler to run those old *.job (now *.define) calls at the proper time intervals you had.

Development versus Production in Parse.com

I want to understand how people are handing an update to a production app on the Parse.com platform. Here is the scenario that I am not sure about.
Create an called myApp_DEV. The app contains a database as well as associated cloud code.
Once testing is complete and ready for go-live I will clone this app into myApp_PRD (Production version). Cloning it will copy all the database as well as the cloud code.
So far so good.
Now 3 months down the line I want have added some functionality which includes adding some cloud code functions as well as adding some new columns to the tables in the db.
How do I update myApp_PRD with these new database structure. If i try to clone it from my DEV app it tells me the app all ready exists.
If I clone a new app (say myApp_PRD2) from DEV then all the data will be lost since the customer is all ready live.
Any ideas on how to handle this scenario?
Cloud code supports deploying to production and development environments.
You'll first need to link your production app to your existing cloud code. this can be done in the command line:
parse add production
When you're ready to release, it's a simple matter of:
parse deploy production
See the Parse Documentation for all the details.
As for the schema changes, I guess we just have to manually add all the new columns.

Deploying to Parse.com hosting from continous Integration

Does anyone know if it's possible to deploy to Parse.com hosting from CloudBees, Travis, or circle?
I'm aware of the commandline tool but I'm not sure how to integrate it with CI or if there is any other way.
I've found a solution that have worked well for me. Using travis-ci.com you can set it up to work with parse.com and github. Users commit to master branch and the code is auto deployed to Parse.com. Basically your credentials are encrypted using Travis's Ruby script (which can be found here: http://docs.travis-ci.com/user/encryption-keys/ . Once you're keys are made, you setup a .yml config file that, on travis downloads the parse sdk in a virtual environment, uses the hashed credentials to login to parse and then runs the parse deploy function resulting in a push to parse.

Resources