Skip to content

Application to insert CSV file into a specified database with optimised columns lenght

Notifications You must be signed in to change notification settings

Maxime-Cllt/FileFlow

Repository files navigation

FileFlow

FileFlow

Rust Tauri Version
FileFlow FileFlow

📄 Description

FileFlow is a simple and easy-to-use tool that allows you to insert data from a CSV file directly into a database table. With no privilege required for insertion, it simplifies the process while offering efficiency.

Built with Rust and the Tauri framework, FileFlow is a cross-platform application available on Windows, MacOS, and Linux. 🚀

Check the Release Section for the latest version of the application.

🌟 Features

  • ✅ Insert data into a new table
  • ✅ Insert data into an existing table
  • Optimize column types (e.g., VARCHAR(MAX_LENGTH))
  • ✅ Insert data from a CSV file
  • ✅ Does NOT require ANY privileges for data insertion
  • ✅ Generate LOAD DATA SQL query for faster insertion

🛠 Supported Databases

MySQL MariaDB PostgreSQL SQLite

📝 Requirements

  • Rust
  • Cargo
  • pnpm

You can follow the instructions on the Tauri website to install Rust and Cargo.

📥 Installation

  1. Clone the repository:

    git clone https://github.com/Maxime-Cllt/FileFlow.git
  2. Install the dependencies:

    cd FileFlow
    pnpm install
  3. Build the application:

    pnpm tauri build
  4. Run the application:

    pnpm tauri dev

💡 Usage

1. Insert Data

  • 📁 Select the CSV file you want to insert into the database.
  • 💻 Choose the database where you want to insert the data.
  • ➡️ Click the "Insert" button.
  • ⏳ Wait for the data to be inserted.
  • Done!

2. Generate Load Data

  • 📁 Select the CSV file you want to insert into the database.
  • 🖱️ Click the "Load" button in the menu.
  • 📋 Copy the generated SQL query.
  • 🏃‍♂️ Run the query if your database supports it.
  • Done!

⚙️ Modes of Data Insertion

There are two modes for inserting data into the database:

  • Optimized Mode: Inserts data into a new table with optimized column types (e.g., VARCHAR(MAX_LENGTH)). 🛠️ This mode may take longer but ensures the table structure is optimized.

  • Fast Mode: Inserts data into an existing table, keeping the original column types as they are in the CSV file. ⚡ This mode is quicker but may not optimize the column types.

Additionally, you can generate a LOAD DATA SQL query for faster insertion if your database supports it. This method is much quicker than row-by-row insertion! 🚀

🤝 Contributing

Want to contribute to the project? Feel free to open an issue or submit a pull request. We welcome contributions and ideas from the community! 💡