How can I migrate users from DotNetNuke 4.9 to 7? - sql-server

I have a DotNetNuke 7 website that I have developed and an older version that was made in 4.9. I have to find a way to migrate the users into the new database so that the users of the website do not have to change their passwords or be inconvenienced in any fashion.
I have attempted to use plugins for this, but I cannot find one that exports 4.9 (seeing as 4.9 is so old) and another to import that file into 7.
If I try to go the manual migration route, what records would I need to pull over? I have noticed there are various user related tables. Are all of these mandatory for migrating users?
Thank you for your time. I'm just trying to understand how to go about the migration and would greatly appreciate some guidance.

You can do this via the database but you have a number of tables that you have to move across and you have Integer Based ID's that you have to worry about. Some of the tables to be aware of are aspnet_membership, aspnet_users, Users, UserProfile, ProfilePropertyDefinition, UserRoles, UserPortals and then there can be more as well.
DataSprings has a module called Interactive User Import which can also do an export. It works great and you can get a version that works that far back.
The other thing that you have to worry about if going truly the DB route is that passwords are encrypted, as such, if you move the passwords manually you have to keep the same encryption key.

Related

How to migrate page versions from once CQ instance to another?

I am working on Adobe CQ. I created 2-3 versions(1.2,1.2,1.3) for a particular page in my author instance. Now I tried to package my content page and installed it in another instance. I couldn't see the versions of the page which I installed in another instance.
Can anyone help me out doing this?? I want to migrate my content pages along with their versions from one CQ instance to another??
We are in the same situation. You can extract prior version details using the packaging approach, but you will be precluded from reloading them in due to the new Oak security model. The next issue is that you would need to extract and transform the data, and then reinsert due to the node ID's potentially differing, especially if you are using partial data sets to extract.
Where we have gotten to, and are proving now, is to use the new migration tool to move content from instance to instance, which purportedly has a version extract tool. I will update details here when we get our results back.
UPDATE:
We have tested the CRX2OAK migration tool, and it indeed does move versions across. Using the tool, you can specify filters to only migrate a subset of content, which will then drag the version details across as well.
It seems this approach works quite well for both single tenancy and multi tenancy approaches as it used to using a package for content.
Unfortunately, it can't be used as a portable backup system, as it is an instance to instance solution. It does, however, work well for blue/green deployment strategies.
Versions are stored by path '/jcr:system/jcr:versionStorage' in AEM.
To transfer pages with their versions just create a package with filters for content which you want to move and the version storage path as well, download package and install in other AEM.
If anyone comes across this question like me, here is the summarised answer:
You can use crx2oak utility available from link below to migrate pages and page version across instances:
https://repo.adobe.com/nexus/content/groups/public/com/adobe/granite/crx2oak/
This is a powerful utility with multiple uses (especially in upgrades) as documented in links below:
https://docs.adobe.com/docs/en/aem/6-2/deploy/upgrade/using-crx2oak.html
https://jackrabbit.apache.org/oak/docs/migration.html
The source and destination repositories need to be offline while running this utility so best to plan ahead for this type of migration.
HTH

In which Joomla DB table I could see information about website installation, such as name, domain, etc.?

My account is deactivated by my hosting provider because it got spammed by a bot. I need to uninstall few Joomla installations and I am trying to see only by looking at the database which one is which. They all are names website_jml1, website_jml2.. etc. Which table should I look into to quickly identify installations? In other words - where in DB joomla stores information about website domain, title, name, etc.
To get a list of all separate extension records, have a look in the #__extensions database table. Do bare in mind that each extension may have it's own separate database tables, so if you do plan on removing manually from the database, make sure you remove all associated database tables, along with files/folders from the Joomla directory.
Just on a side note, in future, always ensure you are running the latest version of Joomla, along with the extensions that you have on your site. Outdated extensions can lead to issues like the one you have.

Wordpress distributed development and database management

I am looking for a way to handle a distributed development for Wordpress. For the moment I set up a shared git repository on which I have all the code of the website versioned. The problem I'm having regards how to handle the database. Clearly I need our site running while we (me and other developers) improve the website locally. This means that the user of the website (which is not up yet) will be able to modify our database (user registration, etc.) while we are working on the development of the site locally, using a dump of the database.
What I am trying to understand is the best practice to handle a shared development like this, while the site is running and thus the database can change.
Not sure what you develop, theme or plugins but with WordPress the change in the database should not have an effect on your development, unless you set something up where the user can create new custom posts, with that I mean a new "custom post" not a new post based on a custom post, which could potentially change the behavior of what you are developing.
If the user runs into something odd because of what they did, well that's called bug fixing, the good news is that you can just export and import the database to fix whatever they run into.
Database data changes isn't your problem (dump exchange, if needed, solve most)
Changes of structure are another big question, you can try to see (for brain-powered solution) on LiquiBase

should i use the joomla user profile table?

When Joomla 1.6 came out and onwards I started using the joomla profile plugin to manage my user's profile data.
I have been wondering for quite a while about the pros and cons of such a table where the data is stored in rows and not in fields.
The pro is definitely that I can add new profile fields very easily.
The con is how do you search on the information when different field types are stored in a text field - ie: the dob of the user is stored in a text field.
Perhaps this question is more database than joomla related?
But it boils down to - should I be using the joomla profile table for large numbers of users?
Thanks,
Mat
It really depends on the project you are working on.
If you use a plugin to get the work done, cons are
You will have to spend some time to get to know the plugin.
It will take more time to make changes since you don't know the internal structure of the plugin.
pros are,
Plugin does everything for you. Faster development.
Most probably error free and tested well.
In my opinion if you are to do a lot of data manipulation and if the plugin does what you want to do exactly use the plugin. That's the best part of joomla. Faster development. If you have any problems please ask.
You can use the Joomla extended profile if you want to, or you can use Community Builder which also extends user profiles.
Out of all honest, might be better for lots of users, as you might want to install other extensions in the future, such as the Kunena forum for example, which it integrates with fully, along with lots of other extensions.

How to install DotNetNuke so I can migrate existing users?

I'm doing a fresh install of DNN 6.0.
I have an existing 4.x site with thousands of users, and my goal is to copy the users from the old database to the new one with some SQL queries. Of course the two sites must have the same machineKey.
I thought I had to set the machineKey value before running the installer, but then installation process overwrites it.
If I change the machineKey after running the installer, I can't access the host login created during the install process.
What am I missing?
I'm willing to use a third-party migration tool, but note that I'm not moving users between portals, I'm moving them between websites.
If it matters, I'm using SQL Server on Windows 2003.
An easy solution to the host login is to complete the install, and set the machine key to match your old system. Then copy the password, and passwordsalt values from a known user in your old db to your host user in your new db. You can then login with the known password.
We imported about 30k users from a different CMS using our own code in conjunction with the DotNetNuke API. This took a lot of time and resulted in password resets for all users. Due to the time involved and the fact that we had to implement a friendly "Oh by the way, welcome to the new site, but you need to change your password now" feature,
I'd recommend the following:
I believe this module from DataSprings allows you to bring over users with passwords intact from another DotNetNuke instance. It is also DNN 6 compatible.
Mitchel Sellers made this very recommendation here, and I trust Mitchel when it comes to DNN.

Resources