There is already an existing base module for all OSU migrations called osu_migrate.module. If you are working for the Digital Experience team, you shouldn’t need to create an entirely new module. If for some reason you do, this section should help you get started. If you are simply adding to osu_migrate.module, skip this section.
All migration modules should be saved under the modules directory, just like all other modules. In this case, each migration may be a subfolder of the osu_migrate directory (which in turn would be a subfolder of the modules directory).
When you create a new module, its name should reflect the site you are migrating. Create a new directory, and under that create three files: The module’s .info file, a .module file, and a node.inc file. The .module file will register migrations and the node.inc file will contain the class declarations for each content type. The .info file will include dependencies for the file to run. Generally, migrations only depend on the migrate and migrate_d2d modules. If you are writing a generic migration, it may be useful to create a separate config file so you can quickly change database settings and include the proper custom files (I explain custom files in detail under the Custom Content Migration section).