Code Monkey home page Code Monkey logo

Comments (3)

techouse avatar techouse commented on June 12, 2024

Hey,

Python was deliberately chosen because of the flexibility it offers. The tradeoff is speed and portability, however, the latter can be mitigated by a PyPI package.

A statically binary that will work out of the box would be super awesome. Maybe even offer it in the download section for every version.
Best would be to compile it directly for the most common architectures, like:

  • amd64
  • arm64
  • i386
  • arm/v6
  • arm/v7

Anyway, for amd64 would be enough for the start.
I already tried to compile it with pyinstaller & staticx, but had no success. Once the prgramm was transfered to another OS (where the required files in the /tmp folder are missing) it was not working anymore.

Static binaries would have to be produced for every OS, i.e. Linux, macOS and Windows, with the latter 2 requiring binary signing which is not free (for example Apple requires a Developer account costing 99 USD). Then there are various architectures, from x86, x86_64 to arm64. It becomes quite laborious super quickly. Last but not least, there are various OSS licenses which might not permit binary distribution.

Seeing that you already tried also points out another problem - Python is an interpreted language and was not designed to be compiled into a static binary like Go, Swift or C++.

A compromise here might be a Docker file, however, that drags along its dependencies as well. I might consider adding that, however, at the moment a PyPI package seems fairly up to the task.

Apparently in this programm still needs me to have python installed, which I on some systems do not have and on some older systems (very old ones) can not even install without any problem.

Frankly I'm not sure why one would be looking for a Python package without having Python installed in the first place.

from sqlite3-to-mysql.

the-hotmann avatar the-hotmann commented on June 12, 2024

Thanks for your feedback, I appreciate it.

I was not aware of apple requires you to pay for signing the binary, ofc I dont want to cause any costs.

A dockerfile would be awesome and I just have seen that it already is available, that is awesome, thanks, I will try it :)

Frankly I'm not sure why one would be looking for a Python package without having Python installed in the first place.

Ah, I probably poorly phrased what I ment. I wanted to point out, that as this is not statically bindable, it will require me to install Python on some very old RHEL 5 VMs. Which these days is problematic, as there are no repos available anymore.
A statically links/bind binary would be written in Python, but to execute it you dont need it. Sorry for the missunderstanding.

Then there are various architectures, from x86, x86_64 to arm64. It becomes quite laborious super quickly. Last but not least, there are various OSS licenses which might not permit binary distribution.

Yes, thats how we do it with golang. Also one of its nice features. I would not care about performance, at such migrator-tools :) So performance shall not play any role here.

Thanks for the swift answer!

from sqlite3-to-mysql.

techouse avatar techouse commented on June 12, 2024

A dockerfile would be awesome and I just have seen that it already is available, that is awesome, thanks, I will try it :)

Yeah, I just forgot to add push: true to the Github action so it didn't publish it 💩 Will fix it in the afternoon.

it will require me to install Python on some very old RHEL 5 VMs

You can use v1 for that as it still supports Python 2.7. In v2 I dropped Python 2 support completely.

You might also want to give the tool access to the SQLite file via ssh and access to the MySQL database via a network protocol in that case. You don't need to run the tool on the target machine as long as it has access to the data.

from sqlite3-to-mysql.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.