Using a Foreign Members Table
By default, ListManager uses the members_ table to store all list members. However, if you have another table on the same SQL server in which you already have member information, ListManager will allow you to keep your list membership information in the same database table that you currently use to keep your customer information.
Although using a foreign members table is currently supported, it will be deprecated, and it is not recommended that new users of ListManager use this data configuration.
Using a foreign members table is a feature of ListManager Pro or Enterprise, and is unavailable for standard ListManager. Contact your account representative at sales@lyris.com if you'd like to upgrade to ListManager Pro or Enterprise.
Using a Foreign Members Table with a New Installation of ListManager
1. If using PostgreSQL or Oracle, create a trigger for your member table. See Using a Foreign Member Table with Oracle or PostgreSQL for details.
2. Install ListManager, and allow the installer to create the tables.
3. Stop ListManager if it is running.
4. Open the file lmcfg.txt using a plain text editor.
5. Add the variables to your lmcfg.txt, and configure them for your system. Details on how to configure these variables are in Connecting to Your Database with lmcfg.txt
6. Open up a command prompt, and cd to the ListManager directory. Type the following:
lm addmembercolumns
This command will add the additional member columns ListManager requires to the table you specified in the lmcfg.txt. Note that the List_ column value will be null for all of your members. For more details about this command, see The AddMemberColumns Command.
7. Restart ListManager.
8. Create the lists you’d like your members to be a part of.
9. Using your own SQL statements, update the List_ column in your foreign member table to assign the proper list to each member. Note that there needs to be one row in the foreign members table for each list/email address combination; e.g., if Fred@example.com is on three different lists, then the foreign members table will have three rows for this user, one for each list. Note that you cannot have a member on the same list multiple times.
Using a Foreign Members Table When Upgrading from ListManager 4.x or ListManagerSQL1.x
Run the installer to upgrade to the current version of ListManager. If you are upgrading from ListManager 4.x, the installer will run copy2sql, which will convert your existing database to SQL.
Follow steps 2-7 above, using preexisting lists if desired. Follow step 8 above if your foreign members table already contains members not assigned to a list. Note that ListManager will only use the membership information in the foreign member table you designate, ignoring the members in the members_ table from your earlier installation. The preexisting data in the members_ table will therefore need to be moved to the designated member table using direct SQL statements. If you have questions about how to do this, please ask your database administrator for assistance.
Future Upgrades Using a Foreign Members Table
If you upgrade ListManager 5.x to a newer version, only the table you designate as the members table will be upgraded. If you have configured ListManager to use a foreign members table, that is the table which will be upgraded; the default ListManager members_ table will be ignored. Once you have upgraded to a new version of ListManager while using a foreign members table, you will not be able to upgrade the standard members_ table to the new version, either by running the installer or using the dbupgrade command.
More
Connecting to Your Database with lmcfg.txt