<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Topics tagged with migration]]></title><description><![CDATA[A list of topics that have been tagged with migration]]></description><link>https://fusionauth.io/community/forum/tags/migration</link><generator>RSS for Node</generator><lastBuildDate>Mon, 08 Jun 2026 11:56:48 GMT</lastBuildDate><atom:link href="https://fusionauth.io/community/forum/tags/migration.rss" rel="self" type="application/rss+xml"/><pubDate>Invalid Date</pubDate><ttl>60</ttl><item><title><![CDATA[Importing users over time]]></title><description><![CDATA[<p dir="auto">I think the way I'd approach this is:</p>

import all users into FusionAuth

<p dir="auto">At cutover time:</p>

look at local database to see which password hashes had changed
pull the user data from FusionAuth for each of these users
delete the user
re-import the user with the new password hash and the FusionAuth data, maintaining the same userId (if you provide the UUID, we'll use that)

<p dir="auto">I get that is an additional complexity, but hopefully that helps.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/3100/importing-users-over-time</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/3100/importing-users-over-time</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[How to bulk import users with no password hash?]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/2507">@mark-robustelli</a> Oh ok, I'll set the password to a UUID then and set the user to change password on login. I'll try on Monday. Thanks for the forum link.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/2639/how-to-bulk-import-users-with-no-password-hash</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/2639/how-to-bulk-import-users-with-no-password-hash</guid><dc:creator><![CDATA[fusionauth.qhj5e]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Importing users from Fusion Auth to KeyCloak]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/2525">@benjamin</a> Hmmm.</p>
<p dir="auto">I'm not quite sure what the issue is, because we do specify salted-pbkdf2-hmac-sha256-512 in the import script:</p>
<p dir="auto"><a href="https://github.com/FusionAuth/fusionauth-import-scripts/blob/master/keycloak/import.rb#L151" rel="nofollow ugc">https://github.com/FusionAuth/fusionauth-import-scripts/blob/master/keycloak/import.rb#L151</a></p>
<p dir="auto"><a href="https://fusionauth.io/docs/v1/tech/migration-guide/keycloak#optionally-install-a-hashing-plugin" rel="nofollow ugc">The migration guide says</a>:</p>
<p dir="auto">"The encryptionScheme for this plugin is salted-pbkdf2-hmac-sha256-512."</p>
<p dir="auto">So when you write:</p>
<blockquote>
<p dir="auto">Hello Dan, I found the fix, at least for my test instance, seems that pbkdf2-sha256 maps to salted-pbkdf2-hmac-sha256 rather than salted-pbkdf2-hmac-sha256-512.</p>
</blockquote>
<p dir="auto">Do you mean that pbkdf2-sha256 is the value from Keycloak and it only worked when you used salted-pbkdf2-hmac-sha256 in FusionAuth, or something else?</p>
<p dir="auto">What version of Keycloak are you migrating from?</p>
]]></description><link>https://fusionauth.io/community/forum/topic/2434/importing-users-from-fusion-auth-to-keycloak</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/2434/importing-users-from-fusion-auth-to-keycloak</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Migrating from mysql to postgresql]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/826">@sander</a></p>
<p dir="auto">Thanks for the update. We're bummed that we can't include the mysql connector as part of the docker image.</p>
<p dir="auto">If FusionAuth is stuck in maintenance mode, this thread might prove useful: <a href="https://fusionauth.io/community/forum/topic/135/can-t-get-by-maintenance-mode">https://fusionauth.io/community/forum/topic/135/can-t-get-by-maintenance-mode</a></p>
<p dir="auto">Can you give me any more details about the issue?</p>
]]></description><link>https://fusionauth.io/community/forum/topic/985/migrating-from-mysql-to-postgresql</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/985/migrating-from-mysql-to-postgresql</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[What can I migrate from a different system]]></title><description><![CDATA[<p dir="auto">You can migrate all of your user data (store any non standard info in user.data), their roles, groups, application association, refresh tokens (so that someone using a TV app, for example, won't have to login again) and their password hashes.</p>
<p dir="auto">Please see the <a href="https://fusionauth.io/docs/v1/tech/guides/migration/" rel="nofollow ugc">FusionAuth migration guide for more</a>.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/893/what-can-i-migrate-from-a-different-system</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/893/what-can-i-migrate-from-a-different-system</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Switching databases from mysql to postgresql]]></title><description><![CDATA[<p dir="auto">There is no easy way to do this. You'd have to migrate your configuration, your users and your DNS (if you are standing up a separate system).</p>
<p dir="auto">If you have all your configuration as scripts, that should be easy to migrate, otherwise you need to move things over manually.</p>
<p dir="auto">You could probably script a retrieve and then add of all the configuration, but there is no 'export all configuration' option.</p>
<p dir="auto">For your users, you could do a database dump to get the hashes and do a bulk import. Or if you have developer edition you could set up a slow migration using connectors. The user migration process is broadly documented here: <a href="https://fusionauth.io/docs/v1/tech/guides/migration/" rel="nofollow ugc">https://fusionauth.io/docs/v1/tech/guides/migration/</a></p>
<p dir="auto">DNS migration is like any other DNS migration.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/847/switching-databases-from-mysql-to-postgresql</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/847/switching-databases-from-mysql-to-postgresql</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Migrating users who have signed in with apple]]></title><description><![CDATA[<p dir="auto">The best solution is to migrate first name and last name from your previous provider.</p>
<p dir="auto">I don’t know of any other options. Apple is stingy with those details about the user.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/822/migrating-users-who-have-signed-in-with-apple</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/822/migrating-users-who-have-signed-in-with-apple</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Using FusionAuth without migrating data into it]]></title><description><![CDATA[<p dir="auto">Yes, you can have FusionAuth simply federate identity and not hold anything permanent in its own datastore. SSO should work in that case.</p>
<p dir="auto">Two options:</p>

If your existing user store can speak SAML or OIDC, you should be able to use an identity provider <a href="https://fusionauth.io/docs/v1/tech/identity-providers/" rel="nofollow ugc">https://fusionauth.io/docs/v1/tech/identity-providers/</a> You would need to modify the theme and you'd probably want to use a hint.
If your existing user store can speak LDAP or a JSON API, you can use connectors without migrating (this is a feature for which you must buy at least a developer license, starting at 125/month, more here: <a href="https://fusionauth.io/pricing/" rel="nofollow ugc">https://fusionauth.io/pricing/</a> ). Here's more on connectors: <a href="https://fusionauth.io/docs/v1/tech/connectors/" rel="nofollow ugc">https://fusionauth.io/docs/v1/tech/connectors/</a>

<p dir="auto">In both these cases, FusionAuth communicates with your userstore through some kind of facade, not directly with the database. Such direct database access isn't supported.</p>
<p dir="auto">I'm not sure how this will work for all aspects of FusionAuth (password expiration, passwordless, etc) but for the main login flows it should work great.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/560/using-fusionauth-without-migrating-data-into-it</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/560/using-fusionauth-without-migrating-data-into-it</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[How can we migrate FusionAuth configuration from dev&#x2F;qa to prod]]></title><description><![CDATA[<p dir="auto">For exporting changes, it depends on how you make the changes. There's a <a href="https://fusionauth.io/community/forum/topic/374/terraform-provider-for-fusionauth-released">community supported terraform module</a>, but it doesn't cover all the apis (PRs welcome!).</p>
<p dir="auto">You could also script all your changes using the API and apply those scripts to different environments. We mostly see folks writing migration scripts that call the APIs. These are very similar to database migration scripts except they make REST calls instead of SQL. The scripts are run during upgrades of their app. (If you are using an app like rails, you could even leverage the existing migration framework and a <a href="https://fusionauth.io/docs/v1/tech/client-libraries/" rel="nofollow ugc">client library</a>.)</p>
<p dir="auto"><a href="https://fusionauth.io/docs/v1/tech/installation-guide/kickstart" rel="nofollow ugc">Kickstart</a> works well for dev envts and CI, but doesn't handle changes (it assumes there is no data in fusionauth and won't run if it sees any).</p>
]]></description><link>https://fusionauth.io/community/forum/topic/549/how-can-we-migrate-fusionauth-configuration-from-dev-qa-to-prod</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/549/how-can-we-migrate-fusionauth-configuration-from-dev-qa-to-prod</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Testing loading of large numbers of users]]></title><description><![CDATA[<p dir="auto">Options:</p>

You can drop the database. This will work if you want to start with a clean slate every time. You may want to look into kickstart or terraform to set default applications, accounts, and other items up every time.
You can load all the users into a tenant (not the default one). Then, when you are done with loading up the users and want to clean up, you can delete the tenant, which will remove all users associated with that tenant. This option maintains all the other non tenant settings (IdPs, emails templates, themes, etc).
You can use the bulk delete API. You can start deleting blocks of 5-10k users and increase the number deleted with each API call. This will be slower, but has the benefit of leaving the rest of the system untouched.

]]></description><link>https://fusionauth.io/community/forum/topic/448/testing-loading-of-large-numbers-of-users</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/448/testing-loading-of-large-numbers-of-users</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[When migrating, what happens to our existing tokens]]></title><description><![CDATA[<p dir="auto">This depends on how the JWT was signs, but is probably fine, especially if JWTs are only used in APIs. It's very typical to want to ensure that existing JWTs are accepted as long as they haven’t expired. You'll also need to ensure that new JWTs from FusionAuth are also accepted.</p>
<p dir="auto">So this is really a question of making sure the JWT producers and consumers have the correct signing secrets.</p>
<p dir="auto">You can solve this by sharing the secrets between the old system and FusionAuth (check out the <a href="https://fusionauth.io/docs/v1/tech/apis/keys" rel="nofollow ugc">Keymaster to import existing keys</a> or making sure your clients can look up the keys from a <a href="https://fusionauth.io/docs/v1/tech/oauth/endpoints#json-web-key-set-jwks" rel="nofollow ugc">JWKS endpoint</a> from both the old and the new system.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/322/when-migrating-what-happens-to-our-existing-tokens</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/322/when-migrating-what-happens-to-our-existing-tokens</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[What is the best way to migrate into FusionAuth?]]></title><description><![CDATA[<p dir="auto">You can use <a href="https://fusionauth.io/docs/v1/tech/apis/connectors/" rel="nofollow ugc">Connectors</a> to integrate with your old backend but this isn’t the best approach.</p>
<p dir="auto">The best approach is to do a migration all in one step using our <a href="https://fusionauth.io/docs/v1/tech/apis/users#import-users" rel="nofollow ugc">Import API</a>.</p>
<p dir="auto">If you are worried about resetting your users' passwords (justifiably!), you can implement custom password hashing if needed so that no one would need to do a password reset. See <a href="https://fusionauth.io/docs/v1/tech/plugins/password-encryptors" rel="nofollow ugc">password encryptors</a> for more info. If you use this path, you can upgrade each user's old password hash to BCrypt as users log in.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/321/what-is-the-best-way-to-migrate-into-fusionauth</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/321/what-is-the-best-way-to-migrate-into-fusionauth</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Password plugin and FusionAuth cloud]]></title><description><![CDATA[<p dir="auto">You can send us your jar file and we'll assist you. Just open a support ticket from your account page.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/293/password-plugin-and-fusionauth-cloud</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/293/password-plugin-and-fusionauth-cloud</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Migrate users between fusionauth instances]]></title><description><![CDATA[<p dir="auto">I'd use the import users API.</p>
<p dir="auto">Helpful links:</p>

<a href="https://fusionauth.io/docs/v1/tech/tutorials/migrate-users" rel="nofollow ugc">https://fusionauth.io/docs/v1/tech/tutorials/migrate-users</a>
<a href="https://fusionauth.io/docs/v1/tech/apis/users#import-users" rel="nofollow ugc">https://fusionauth.io/docs/v1/tech/apis/users#import-users</a>

]]></description><link>https://fusionauth.io/community/forum/topic/272/migrate-users-between-fusionauth-instances</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/272/migrate-users-between-fusionauth-instances</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item></channel></rss>