Profiling a database
A database profile is a thorough analysis of the data and its structure. Each table has its own profile.
The Data Agent consults the profile whenever it needs to understand the content or structure of a table. For example, when it adds data to a table, the Data Agent uses the table profile as a guide.
You can also prompt the Data Agent to use a profile to guide data generation. For example, for a live connection database, you can generate data to one database connection based on the profile of another database connection.
To profile an external database, you can either:
Connect to it and generate the profile from within Fabricate.
From your own coding agent, use the Fabricate public profiling skill to create the profile.
Using Fabricate to create a profile
When it needs to use profile information, but there is no profile, then the Data Agent automatically creates one.
The Data Agent also automatically updates the profile to reflect changes to the data structure. For example, if you add columns or if you make changes to the distribution of values, then the Data Agent updates the profile.
To manually profile a database, prompt the Data Agent. For example:
Create a profile of the transactions database.
Using a coding agent to create and import a profile
You might want to use the profile of an existing production database to generate data in Fabricate. However, for security reasons, you also might not want to add a connection from Fabricate to the database.
For this type of use case, Fabricate provides an external data profiling skill that you can add to an AI agent such as Claude or Cursor. From within your AI agent, you create the profile. You can then import the profile into Fabricate to use for future data generation.
Adding the profiling skill to your AI agent
To add the profiling skill to your AI agent, run the following:
npx skills add TonicAI/agents --skill fabricate-database-profile
Profiling a database
After you add the profiling skill, you prompt your AI agent to profile the database.
The prompt must include the location and connection details of the database to profile.
For example: Create a Fabricate database profile. To connect to the database, use the connection string Server=123.45.6789;Database=commerce;Port=1234;User Id=user1;Password=p@ssw0rd
Importing the profile into Fabricate
If your AI agent is connected to the Fabricate MCP server, then you can prompt the agent to import the profile into Fabricate.
Otherwise, you can download the profile from your AI agent and then use the Data Agent to import the profile into Fabricate.
Attach the file, then prompt the Data Agent to add the profile to the Profiles list. For example: Add the profile from the attached file fabricate_profile.json to the list of available profiles.
Viewing a table profile
For an individual table, findings view displays the profile for the table.
The profile details page provides access to the profile information for all of the tables.
Displaying findings view for a table
To display the findings view for a table:
In the navigation panel, display the table list for a database or data connection.
In the table list, click the table.
In the table heading, click the findings icon.

Displaying the profile details page
To display the profile details page in the navigation panel, under Profiles, click the profile to display.
By default, the profile details page displays the the profiles for all of the tables.

To display the profile for a specific table, in the profile header, click the table name.
What's in a profile?
Each profile includes:
Table DDL.
Correlation of columns. For example, a transaction date and transaction identifier are likely to be tightly correlated. Or the total cost of an order is the sum of each order item cost times the order item quantity.
Cardinality of column values. For example, most orders have 1 item, fewer orders have 2 items, and even fewer orders have more than 2 items.
Constraints on columns. For example, the same order cannot have a duplicate product identifier. All timestamps must use the ISO 8601 format.
Distribution of column values. For example, customer addresses are distributed across 20 states.
Exporting a profile
From the profile details page, you can export a profile. Fabricate creates and downloads a JSON file that contains the profile.
You can then use the profile as the basis for another database.
To export the profile, on the profile details page, click Export.
You can also use the Data Agent chat to request the export. For example: Export the Retail database profile.
Last updated
Was this helpful?