3 min read

How to Import a CSV into Directus

When setting up new tables in Directus, it is very likely that you have a purpose in mind and some existing data to include. Thankfully, we can import directly from the user interface.

When setting up new tables in Directus, it is very likely that you have a purpose in mind and some existing data to include. Rather than having to ask someone to import the data directly to the database, you can import from the Directus UI. This article will cover how you can import a CSV into your table.

The essential key for importing a CSV is to include the column headers. These must match exactly how they appear in the data model (generally all lowercase). Using the Import/Export section in the right side menu, click the import field and select your CSV. Then click Start Import. Directus will validate your file then import the data.

Step 1: Format your CSV

It's very important to ensure your CSV is valid and contains column headers. These are matched to the field names in Directus. To check, open the data model for you table and make note of the field names.

Data model example

I use Microsoft Excel which makes things easier for me.

example of excel and matching column names

When ready, make sure to save as a CSV file.

File format set to csv

Open the CSV in a text editor and confirm you don't have an values over multiple lines. In the example below, the HTML content has a return that has put it on a new. This is counted as a new item and will cause the inport to fail.

Example of bad CSV formatting
💡
If you are importing content with a lot of HTML, it's much better to use JSON instead.

Step 2: Import the CSV into Directus

Open the collection where you intend to add the data. Expand the right menu and click on the Import/Export section.

Click on the import field, choose your CSV and click Start Import.

steps to import a CSV

And that's it, Directus will validate the file and import the file.

Limitations

I tried importing 1,000, 10,000, 50,000 records in one hit. I started having difficulties after 10,000 records but this also depends on your server settings such as request timeouts and resource limits. But either way, with records beyond 10,000, it's worth importing directly into the Database.

💡
Note, every row imported registers an entry in the activity feed.

Also, your database may prevent primary key inserts. If you intend to include the primary key in the import, you'll need to make sure this is allowed on your database end. Otherwise, remove the ID from the CSV and a new one will be assigned when the item is created.

Do I need to supply all Fields?

No, only required fields.

Who will be the created User?

This will the account you are currently using for the Import unless you include the user ID for the user_created field.

Can I set a Creation Date and User?

Yes, they will need to be the right format. YYYY-MM-DDT00:00:00Z for dates, then the UUID of the user account.

Conclusion

Importing Data is a fantastic feature to empower users to move their data into Directus easily without needing access to the Databases. The trick is ensuring the CSV is formatted correctly first. If you want an example of how to format the file, you can export some existing records from your table and see how it's done.

By continuing to use our website, you consent to use essential cookies. We also use optional tracking cookies which help us gather statistics to improve our services. Do you consent to these cookies?

I Consent Do not track