diff --git a/app/views/docs/index.phtml b/app/views/docs/index.phtml index 3554cba88..b57eb9a43 100644 --- a/app/views/docs/index.phtml +++ b/app/views/docs/index.phtml @@ -93,6 +93,16 @@ $cols = [
  • Functions
  • +
  • + Migrations + +
  • diff --git a/app/views/docs/migrations-cloud-to-local.phtml b/app/views/docs/migrations-cloud-to-local.phtml new file mode 100644 index 000000000..6c012e1ef --- /dev/null +++ b/app/views/docs/migrations-cloud-to-local.phtml @@ -0,0 +1,34 @@ +

    + If you're moving your projects from Appwrite Cloud to self-hosted, we've got you covered. + Migrations makes it as easy as a couple clicks to move all of your Appwrite Cloud project data to a self-hosted instance. +

    + +

    Things to keep in mind

    + +
      +
    1. Data transferred by migrations will reset `$createdAt` and `$updatedAt` timestamps to the date of the migration.
    2. +
    3. Your self-hosted Appwrite project must be accessible from the internet for the migration to work.
    4. +
    5. Migrations are non-destructive. No data will be deleted or lost in the source project.
    6. +
    + +

    Migrating to Self-hosted from Cloud

    + +

    + To begin migrating to Appwrite Self-hosted, make sure to read the migrations overview + and things to keep in mind sections above. +

    + +

    Steps in Cloud Console

    +
      +
    1. Navigate to your Appwrite Cloud Console and click on the Migrations tab in Project Settings.
    2. +
    3. Click Export to Self-hosted, you will be prompted to input the URL of your self-hosted Appwrite project.
    4. +
    5. Optionally, tell us about why you're moving to self-hosted.
    6. +
    7. After clicking Continue, you'll be redirected to your self-hosted project to complete the process.
    8. +
    + +

    Steps in Self-hosted Console

    +
      +
    1. Once redirected to your self-hosted server, you'll be prompted to select a project. If you have multiple organizations, you will also be asked to pick one. You can migrate to an existing project or create a new one.
    2. +
    3. Select the data you wish to migrate. You can choose among accounts, databases, documents, files, and functions.
    4. +
    5. Click Start migration to begin the migration process. You do not need to keep the Appwrite Console open through the process.
    6. +
    \ No newline at end of file diff --git a/app/views/docs/migrations-cloud-to-self-hosted.phtml b/app/views/docs/migrations-cloud-to-self-hosted.phtml new file mode 100644 index 000000000..801d93c0e --- /dev/null +++ b/app/views/docs/migrations-cloud-to-self-hosted.phtml @@ -0,0 +1,34 @@ +

    + Moving to a self-hosted instance? We've got you covered. + Migrations makes it as easy as a couple clicks to move all of your Appwrite Cloud project data to a self-hosted instance. +

    + +

    Things to keep in mind

    + +
      +
    1. Data transferred by migrations will reset `$createdAt` and `$updatedAt` timestamps to the date of the migration.
    2. +
    3. Your self-hosted Appwrite project must be accessible from the internet for the migration to work.
    4. +
    5. Migrations are non-destructive. No data will be deleted or lost in the source project.
    6. +
    + +

    Migrating to Self-hosted from Cloud

    + +

    + To begin migrating to Appwrite Self-hosted, make sure to read the migrations overview + and things to keep in mind sections above. +

    + +

    Steps on Your Cloud Project

    +
      +
    1. Navigate to your Appwrite Cloud Console and click on the Migrations tab.
    2. +
    3. Click Export to Self-hosted, you will be prompted to input the URL of your self-hosted Appwrite project.
    4. +
    5. Optionally, tell us about why you're moving to self-hosted.
    6. +
    7. After clicking Continue, you'll be directed back to your self-hosted project to complete the process.
    8. +
    + +

    Steps on Your Self-hosted Project

    +
      +
    1. Once redirected to your self-hosted project, you'll be prompted to select an organization and a project. You can migrate to an existing project or create a new one.
    2. +
    3. Select the data you wish to migrate. You can choose among accounts, databases, documents, files, and functions.
    4. +
    5. Click Start migration to start the migration process. You do not need to keep the Appwrite Console open through the process.
    6. +
    \ No newline at end of file diff --git a/app/views/docs/migrations-firebase.phtml b/app/views/docs/migrations-firebase.phtml new file mode 100644 index 000000000..2c351d599 --- /dev/null +++ b/app/views/docs/migrations-firebase.phtml @@ -0,0 +1,154 @@ +

    + Moving your project from Firebase to Appwrite? + Appwrite Migrations can help you streamline the process. + + Here's what you need to know to get started. +

    + +

    Things to keep in mind

    + +
      +
    1. Appwrite will not incur usage charges during migrations, but Firebase may still incur service charges.
    2. +
    3. Appwrite Migrations only supports Firestore as a database source. Realtime Database is currently not supported.
    4. +
    5. At the moment only top level document migration is supported. Nested documents will not be migrated automatically.
    6. +
    7. OAuth users will not be migrated because the sessions are managed by the third-party OAuth provider. Users will need to re-authenticate with your OAuth provider after the migration is complete.
    8. +
    9. Functions are not automatically migrated because of syntax and runtime differences.
    10. +
    + +

    Migrating to Appwrite from Firebase

    +

    + To begin migrating to Appwrite make sure to read the migration overview + and things to keep in mind sections above. +

    + +
      +
    1. + Create a new project and click on the Migrations tab in Project Settings. +
    2. +
    3. + Click on the Create Migration button and select Firebase as your source. +
    4. +
    5. + Navigate to your Firebase console. +
    6. +
    7. + Click the gear icon to access your Project Settings. +
    8. +
    9. + Click on Service Accounts, then click on the Manage service account permissions link redirecting you to the Google Cloud Console. +
    10. +
    11. + Click on Create Service Account, give it a name, id and description you want, then click Continue. +
    12. +
    13. + Next you'll be prompted to grant the service account roles. You need to grant the following roles. +
    14. + + + + + + + + + + + + + + + + + +
      RoleReason
      Firebase ViewerRead access to your entire Firebase project including Database and Storage.
      Identity Toolkit ViewerRead access to your users including their hash config.
      +
    15. If you prefer to create a custom role, you can use the following permissions.
    16. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      PermissionReason
      datastore.databases.getRead access to your Firestore database.
      datastore.databases.listRead access to your Firestore database.
      datastore.entities.getRead access to your Firestore database's documents.
      datastore.entities.listRead access to your Firestore database's documents.
      datastore.indexes.getRead access to your Firestore database's indexes.
      datastore.indexes.listRead access to your Firestore database's indexes.
      firebaseauth.configs.getRead access to your Firebase project's authentication configs.
      firebaseauth.configs.getHashConfigRead access to your Firebase project's authentication configs including hash salt.
      firebaseauth.configs.getSecretRead access to your Firebase project's authentication configs including secret.
      firebaseauth.users.getRead access to your Firebase project's users.
      identitytoolkit.tenants.getRead access to your Firebase project's users.
      identitytoolkit.tenants.listRead access to your Firebase project's users.
      storage.buckets.getRead access to your Firebase project's storage buckets.
      storage.buckets.listRead access to your Firebase project's storage buckets.
      storage.objects.getRead access to your Firebase project's storage objects.
      storage.objects.listRead access to your Firebase project's storage objects.
      +
    17. + Click Done to create the service account. After that you'll be redirected back to the service accounts page. Select the service account you just created and click Keys. +
    18. +
    19. + Click Add Key and select Create new key. Select JSON as the key type and click Create. This will download a JSON file to your computer. +
    20. +
    21. + Upload the JSON file to Appwrite and follow the migration wizard. +
    22. +
    23. + After completing the migration wizard, migration will begin. Return to step 4 of the migration steps. +
    24. +
    25. + Finally, add the platforms for your Web, Flutter, Android, and iOS apps. +
    26. +
    \ No newline at end of file diff --git a/app/views/docs/migrations-local-to-cloud.phtml b/app/views/docs/migrations-local-to-cloud.phtml new file mode 100644 index 000000000..9040dafa1 --- /dev/null +++ b/app/views/docs/migrations-local-to-cloud.phtml @@ -0,0 +1,38 @@ +

    + If you're moving your self-hosted projects to Appwrite Cloud, we've got your back. + Migrations makes it as easy as a couple clicks to move all of your self-hosted project data to a Cloud instance. +

    + +

    Things to keep in mind

    + +
      +
    1. Data transferred by migrations will reset $createdAt and $updatedAt timestamps to the date of the migration.
    2. +
    3. Your self-hosted Appwrite project must be accessible from the internet for the migration to work.
    4. +
    5. Migrations are non-destructive. No data will be deleted or lost in the source project.
    6. +
    + +

    Migrating to Cloud from Self-hosted

    +

    + To begin migrating to self-hosted, make sure to read the migration overview + and things to keep in mind sections above. +

    + +

    Steps in Self-hosted Console

    + +
      +
    1. Navigate to your self-hosted project's console and click on the Migrations tab in Project Settings.
    2. +
    3. Click Deploy to cloud, and you will be redirected to Appwrite Cloud.
    4. +
    5. You will complete the migration on Appwrite Cloud.
    6. +
    + +

    Steps in Cloud Console

    +
      +
    1. Once redirected to Appwrite Cloud, you'll be prompted to select a project. If you have multiple organizations, you will also be asked to pick one. You can migrate to an existing project or create a new one.
    2. +
    3. Select the data you wish to migrate. You can choose among accounts, databases, documents, files, and functions.
    4. +
    5. Click Start migration to start the migration process. You do not need to keep the Appwrite Console open through the process.
    6. +
    + +
    +

    Keep in mind

    +

    Your Self-hosted instance will generate a API Key in the background to pass to Cloud. You can revoke this key after the migration process is complete.

    +
    \ No newline at end of file diff --git a/app/views/docs/migrations-nhost.phtml b/app/views/docs/migrations-nhost.phtml new file mode 100644 index 000000000..7558fe9b5 --- /dev/null +++ b/app/views/docs/migrations-nhost.phtml @@ -0,0 +1,64 @@ +

    + Moving your project from NHost to Appwrite? + Appwrite Migrations can help you streamline the process. + + Here's what you need to know to get started. +

    + +

    Things to keep in mind

    + +
      +
    1. Appwrite will not incur usage charges during migrations, but NHost may still incur service charges.
    2. +
    3. Appwrite's Database doesn't support all the features of the postgreSQL database so more advanced postgres centric things things like advanced indexes, postgres functions and scheduling will not be migrated.
    4. +
    5. OAuth users will not be migrated because the sessions are managed by the third-party OAuth provider. Users will need to re-authenticate with your OAuth provider after the migration is complete.
    6. +
    7. Functions are not automatically migrated because of syntax and runtime differences.
    8. +
    + +

    Migrating to Appwrite from NHost

    +

    + To begin migrating to Appwrite make sure to read the migration overview + and things to keep in mind sections above. +

    + +
      +
    1. + Create a new project and click on the Migrations tab in Project Settings. +
    2. +
    3. + Click on the Create Migration button and select NHost as your source. +
    4. +
    5. + Enter the credentials following the instructions below and click Next. +
    6. +
    7. + Select the resources you want to migrate and finally click Start migration to begin the migration process. +
    8. +
    9. + Finally, add the platforms for your Web, Flutter, Android, and iOS apps. +
    10. +
    + +

    NHost Credentials

    +

    +Enter all the following credentials from your NHost project. +

    +
      +
    1. + Region - The region your NHost project is hosted in. This can be found in your NHost project environment variables as NHOST_REGION. +
    2. +
    3. + Subdomain - The subdomain of your NHost project. This can be found in your NHost project environment variables as NHOST_SUBDOMAIN. +
    4. +
    5. + Database - The name of your NHost database. This can be found in your NHost project Database settings. +
    6. +
    7. + Username - The username of your NHost database. This can be found in your NHost project Database settings. +
    8. +
    9. + Password - The password of your NHost database. You set this when you created your NHost project, if you don't remember it you can reset it from your NHost project Database settings. +
    10. +
    11. + Admin Secret - The admin secret of your NHost project. This can be found in your NHost project environment variables as NHOST_ADMIN_SECRET. We use this to transfer your NHost files to Appwrite. +
    12. +
    \ No newline at end of file diff --git a/app/views/docs/migrations-self-hosted-to-cloud.phtml b/app/views/docs/migrations-self-hosted-to-cloud.phtml new file mode 100644 index 000000000..5cfee4cb8 --- /dev/null +++ b/app/views/docs/migrations-self-hosted-to-cloud.phtml @@ -0,0 +1,38 @@ +

    + Making the move to Appwrite Cloud? We've got your back. + Migrations makes it as easy as a couple clicks to move all of your self-hosted project data to a Cloud instance. +

    + +

    Things to keep in mind

    + +
      +
    1. Data transferred by migrations will reset $createdAt and $updatedAt timestamps to the date of the migration.
    2. +
    3. Your self-hosted Appwrite project must be accessible from the internet for the migration to work.
    4. +
    5. Migrations are non-destructive. No data will be deleted or lost in the source project.
    6. +
    + +

    Migrating to Self-hosted from Cloud

    +

    + To begin migrating to self-hosted, make sure to read the migration overview + and things to keep in mind sections above. +

    + +

    Steps on Your Self-hosted Project

    + +
      +
    1. Navigate to your self-hosted project's console and click on the Migrations tab.
    2. +
    3. Click Deploy to cloud, you will be redirected to Appwrite Cloud.
    4. +
    5. You will complete the migration on Appwrite Cloud.
    6. +
    + +

    Steps on Your Cloud Project

    +
      +
    1. Once redirected to Appwrite Cloud, you'll be prompted to select an organization and a project. You can migrate to an existing project or create a new one.
    2. +
    3. Select the data you wish to migrate. You can choose among accounts, databases, documents, files, and functions.
    4. +
    5. Click Start migration to start the migration process. You do not need to keep the Appwrite Console open through the process.
    6. +
    + +
    +

    Keep in mind

    +

    Your Self-hosted instance will generate a API Key in the background to pass to Cloud. You can revoke this key after the migration process is complete.

    +
    \ No newline at end of file diff --git a/app/views/docs/migrations-supabase.phtml b/app/views/docs/migrations-supabase.phtml new file mode 100644 index 000000000..8ff4a7bca --- /dev/null +++ b/app/views/docs/migrations-supabase.phtml @@ -0,0 +1,65 @@ +

    + Moving your project from Supabase to Appwrite? + Appwrite Migrations can help you streamline the process. + + Here's what you need to know to get started. +

    + +

    Things to keep in mind

    + +
      +
    1. Appwrite will not incur usage charges during migrations, but Supabase may still incur service charges.
    2. +
    3. Appwrite's Databases services supports a different set of features as PostgreSQL. Some features like advanced indexes, Postgres functions and scheduling will not be migrated.
    4. +
    5. OAuth users will not be migrated because the sessions are managed by the third-party OAuth provider. Users will need to re-authenticate with your OAuth provider after the migration is complete.
    6. +
    7. Functions are not automatically migrated because of syntax and runtime differences.
    8. +
    + +

    Migrating to Appwrite from Supabase

    +

    + To begin migrating to Appwrite make sure to read the migration overview + and things to keep in mind sections above. +

    + +
      +
    1. + Create a new project and click on the Migrations tab in Project Settings. +
    2. +
    3. + Click on the Create Migration button and select Supabase as your source. +
    4. +
    5. + Enter the credentials following the instructions below and click Next. +
    6. +
    7. + Select the resources you want to migrate and finally click Start migration to begin the migration process. +
    8. +
    9. + Finally, add the platforms for your Web, Flutter, Android, and iOS apps. +
    10. +
    + +

    Credentials

    + +

    Enter all the following credentials from your Supabase project.

    + +
      + +
    1. + Host - The host of your Supabase Database, this can be found in your Supabase project settings under Database Settings and Host. +
    2. +
    3. + Port - The port of your Supabase Database, this can be found in your Supabase project settings under Database Settings and Port. By default this is 5432. +
    4. +
    5. + Username - The username of your Supabase Database, this can be found in your Supabase project settings under Database Settings and Username. +
    6. +
    7. + Password - The password of your Supabase Database, this was set when you created your Supabase project. If you forgot your password, you can reset it within Database Settings. +
    8. +
    9. + Endpoint - This is the endpoint of your Supabase instance under Project Settings > API. This is used to migrate your files. +
    10. +
    11. + API Key - This is the key of your Supabase instance under Project Settings > API. This is used to migrate your files. Make sure to use the hidden service_role key. +
    12. +
    diff --git a/app/views/docs/migrations.phtml b/app/views/docs/migrations.phtml new file mode 100644 index 000000000..e130ae472 --- /dev/null +++ b/app/views/docs/migrations.phtml @@ -0,0 +1,90 @@ +

    + If you're looking to migrate existing projects to Appwrite, Migrations can help you make the move more quickly. + You can move your app from Firebase, Supabase, NHost, and even move between self-hosted and Cloud projects using Migrations. + You can also use Migrations to move between two self-hosted instances or even to duplicate project on the same instance. + Migrations will automatically move accounts, database documents, and storage files from one source to another. +

    + +

    Supported sources

    +

    + You can transfer from these sources to an Appwrite project. + Resources marked supported are migrated automatically. + Resources marked partial can be migrated, but with limitations or caveats, check the guide for each source to learn more. + Resources marked manual require manual migration. +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    SourceUsersDatabasesDocumentsFilesFunctions
    +

    Firebase

    +
    supportedsupportedpartialsupportedmanual
    +

    Supabase

    +
    supportedsupportedpartialsupportedmanual
    +

    NHost

    +
    supportedsupportedpartialsupportedmanual
    +

    Cloud to Self-hosted

    +
    supportedsupportedsupportedsupportedsupported
    +

    Self-hosted to Cloud

    +
    supportedsupportedsupportedsupportedsupported
    + +

    Limitations

    +

    + Migrations cannot transfer all data perfectly, so certain fields, such as $createdAt and $updatedAt, may not be transferred. + More information can be found on the migration page for each source. +

    + +

    + Migrations help you jump start your move, but because each product is unique, complex databases and product unique features like functions might need to be migrated manually. + We also recommend you carefully validate permissions and data integrity when moving between platforms. +

    \ No newline at end of file