I am coming from Eagle background where there is a common library file that you use across all projects. Taking an example of a capacitor - I design one generic capacitor symbol, add multiple packages (0402, 0603, 0805 etc) to it and make it a device. One project might need 10 values of capacitors. I insert the same capacitor device and just select the correct package and enter the value.

I signed up for an online Altium course recently and I observed that the library is being created inside the project. For every value of capacitor, a new symbol and a new package is being created. This looks like a lot of work but I see a value in the sense that each component has a part number and complete manufacturer and pricing info. Is there any other advantage to it?

Besides, if I have created 20 parts during a project, I might need the same in other future projects. For ex - almost every project needs capacitors. How do I manage my library from the very beginning so that I can conveniently re-use the components?

Edit: I did some more research and found out that it's not necessary to make libraries inside projects. I can add components from a central source. However I see a value in including the libraries inside the project because this allows me to send the PCB files to a different team without worrying about missing component library.

As such, I want to know how to deal with this? Do I need to make a central library, then duplicate it into every project I make?


1 Answer 1


There are approx. 20+ ways to manage your Library files in Altium. I highly recommend using the DbLib approach (do not confuse it with the DbLink approach), backed by either SVN or GIT manually for your library files as this gives you maximum flexibility. We're currently at nearly 5k components (yes, half of them are resistors and caps) and haven't had a single issue yet.

I also highly recommend to NOT use Access as database backend. Instead, use MSSQL Express (free). Do NOT use spaces or special characters as your column names.

Basically you will end up with a directory structure full of library files (SchLib and PcbLib) and a DbLib file which describes the interaction between Altium, your library files and the database.

Make sure that each of your articles has a unique identifier (article number, whatever you call it). Then assign the SchLib and PcbLib files to that article.

For full traceability, make sure to store only a single footprint or schematic symbol per file so this can be traced through GIT or SVN.

  • \$\begingroup\$ I also vote for DbLib backed by GIT. I would like to know how do you manage the database ? I usually use Excel as editing tools and then I manually paste the row in the access DB. However, this solution is not very nice, I am always looking for a good front end for the component DB. \$\endgroup\$
    – RodezIO
    Commented Sep 5, 2018 at 12:15
  • \$\begingroup\$ There is only one real solution. Use a MSSQL DB as Backend. You can use MSSQL Management Studio Express as some kind of limited Edit environment. Yet, we go one step further so that we keep all the required properties stored in our ERP system. This data is then used to create Altium's library (so we edit the data in our ERP, this data is then used by Altium). Another solution would be to custom build a webinterface to handle CRUD procedures. \$\endgroup\$
    – Tom L.
    Commented Sep 5, 2018 at 13:21
  • \$\begingroup\$ We use Access as the backend... oh, I can't tell you how much I regret it. It was very easy to get started but is limiting now. First, anyone who wants to edit the database has to have Access. Second, Altium seems to download the entire mdb file to query it, which is terrible over VPN. Use any kind of SQL database, but don't use Access. \$\endgroup\$
    – Jim
    Commented Aug 12, 2019 at 17:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.