I've been exploring improvements to our workflow and data management and adopting version control via SVN seems like a great move in the right direction. I come from a bit of a software background and while I am a bit nervous about using SVN to store binary blobs and relying on Altium's internal tools for diffs, it seems better than any other option available. On my newest project, I've been committing to SVN regularly and the integration for working with a single schematic/pcb project seems to work pretty well. Version control shines when integrating multiple developers, so we'll see if that ends up happening at all with our current style of one engineer per pcb. Anyways, as well as that works my moves towards moving our disjointed libraries to a single SVNDBLib has not been successful.
First of all, let me point out that I have not been able to find Altium's reference library anywhere. Their site seems to have gone through a bit of an overhaul and I'm not sure where they stuck it. If anyone knows where it is, I'd love to take a gander. In the meantime however, I've been having trouble getting it figured out just using the tutorial information. It could very well be that I am missing some fundamental understanding of how Altium tracks library sch/pcb component relationships so please feel free to correct any misconceptions I have.
To build the library, I first created a mdb database with Access and added a /Library/sch and /Library/pcb folder to SVN. The database has a couple different tables to organize the parts into reasonably specific categories (connector, regulator, etc), and fields were added to each table. This part I am a bit unsure of - it seems like for the most part you can add lots of additional fields that hold whatever data you want, but there are a few fields that need to be specified. I feel like this may be a point at which I've screwed up. Here is an example table, the connector table:
Description | Symbol | Footprint | Part Number | Type | Manufacturer | RoHS
It's a pretty minimal list, but I figured would be sufficient for connectors. I created an SVNDBlib and pointed it at the mdb file and the subversion server and directories. All of this appears to be correct as it can find and download the SVN folders and see the database tables. I set the description field as [description], the symbol as [library ref] and the footprint as [footprint ref]. I also set the part number field as the single key lookup. To create my first symbol/footprint I created both manually in the correct directories in my working folder, and then added a component in the SVNDbLib table browser with the symbol and footprint matching the names for the sch/pcb library items I just made. I can right click in the SVNDbLib table browser and go to 'open symbol' and 'open footprint' and open them just fine. This is where everything goes badly though.
I'm not sure if you do this with an SVNDbLib, but I can't 'Add Footprint' within the schlib file I created as it can't find any footprints. I was having trouble adding symbols to schematics with an error "Design Item ID'<comp>' not found" where <comp> is that particular components name, but futzing with the database a bunch seems to have cleared that up (I believe setting the description to the same as the symbol name, changing from "<company name> part number" to "part number" column name for the lookup, or perhaps something else I tweaked at the same time
)
When I go to the Libraries window, I can see all of my tables and they look like separate tables. When I select the library and component, I can see the symbol but not the footprint. I can add the part to the schematic, but can't import it to the PCB because the footprint can't be found. It seems to be looking for the correct name, but I'm not sure how to help it find the correct file.
Thoughts? Does this workflow seem correct? It's slow and clumsy and at the moment, I'm not sure if it is worth all of the extra work it is turning out to be.