Dovecot & Postfix interaction with MySQL question - mysql

I am running a mail server on Ubuntu 22.04 with Postfix Dovecot and MySQL and the primary software components of the mail server. I am new to a lot of this software and am working out the interactions between the three of them.
My question: I am looking into adding some columns into my mailbox table of my MySQL database to organize and keep track of the users (essential an auto-incrementing user id column) and I was wondering if there is some interaction between the three software that might go all screwy because of this?
Anyone who has a better understanding of this three software and who could answer this would be greatly appreciated!
Anyone who has a better understanding of this three software and who could answer this would be greatly appreciated!

Related

One database or several?

I am developing a CRM in Laravel and the following doubts came to me.
Client A will have access to 1 database + 5Gb of emails and Client B will also, but how should I organize this on my server?
Should I create a database called banco_a and another banco_b? Is there another way?
If anyone can give me a "north" of which would be the best way for this, I will be grateful.
Remembering that my application could reach 100 clients or 1000
According to your requirements you have to implement multi-tenancy system, ie architecture in which a single instance of a software application serves multiple customers, for detail read this article https://whatis.techtarget.com/definition/multi-tenancy,
In laravel there is package for multitenancy. https://laravel-tenancy.com, which is awesome in my knowledge.

Sync Mail to MySQL

I've been given the task to synchronize our mail to our MySQL database.
Is there an easy way that I can do this? Or can you guys suggest any software available for this?
Thank You.
Zapier can help you build connections between two services, including email and MySQL.

Share logins between 2 databases or?

I have a personal website using a MySQL database (with justhost.com). The registration is very simple and only requres a username, pw, and email. I want to add an Oekaki to my site, but the Oekaki install instructions say it should have its own database. If I input the database I am currently using, will that screw it up, or will it create a new table within that database so when a member logs in, they have access to the Wiki and Oekaki under the same username and pw?
Please note I am a database newbie. I am using TikiWiki 6.2 currently and at its initial install of TikiWiki 5 created its own database. If the above won't work in any way, after I create a new database for the Oekaki, what would I have to do so it uses the current registration information from my TikiWiki database without me having to manually enter in every single user one by one for the Oekaki side of the site?
Any information is helpful, even if it just helps me learn a little bit more about databases. :)
I don't know any of these software you mentioned. But i can say in general if a software itsself recommends to use one single database for it you should do it.
I had a similar problem with my wordpress blogs database and another organisational software i installed. The next day all my blogs content was gone forever.
It could be, that for example the software just throws all existing tables away.
So my answer (or better advice) is. Be careful and if you can avoid it, don't throw together two applications in one database.
For the user-table thing you could probably just change one of the systems to use only the user-table of the other system. So nothing will be screwed up. Or if you have the opportunity make a third "General" Database where you just put your users data and use it in both systems.

ruby on rails w/ SQLServer

I've heard from some people that RoR doesn't marry cleanly with SQLServer. We are being pushed to use SQLServer for historical and standardization reasons but if we can push back with valid reasons we can move to another db. One person on the team wants MySql and another wants Postgres, etc. I'm trying to stay out of the religious wars and really understand what the pain point is with SQLServer.
We're running the app server on a linux box, and the database will be on a windows box and the SQLServer that we're supposed to standardize on is 2008, if those details help any...
thanks in advance!
I am not very familiar with such configuration but.. There are some question you should (I think so) ask yourself and team.
Is there any significant advantage for your project of using SQLServer?
If yes ... Is it so overwhelming that you are ready to face some difficulties with odbc drivers such as: http://groups.google.com/group/rails-sqlserver-adapter/browse_thread/thread/6d35d4a53ac210b2
Are you ready to host so many configurations of this boxes (linux+windows) for development, staging and production?
Do you have got professional of SQLServer in your team? (backups and administration)
If you cannot get positive answers for this questions I think SQLServer could be very hard to maintain for RoR project. Still it doesn't mean it is not possible. But sometimes you must ask yourself why you should use saw to driving nails when you have got hammer at your left.
I am successfully using Rails (version 3 to latest) with SqlServer in production for many years.
You can use https://github.com/rails-sqlserver/activerecord-sqlserver-adapter which recently upgraded to support latest SqlServer/Azure for Rails 5.2.

Best way to update products

Some background:
We provide a complex system consisting of a large database and several programs - most written in C#, however some legacy applications are still running on MFC.
Most of the stuff we provide runs on a single server (runs SQL server and SQL Management studio 2005), however several applications can run on a number of client's computers. Updating this is a real pain, since after we update the database the outdated software is likely to break due to database changes. Updating the server software manually is one thing, however making sure all the client software works too is practically impossible, and will only get worse with time.
I am to write an updating service, which will be able to update the whole product - update the database, reinstall services and applications. (However only the programs / files /tables / etc that are actually modified should be updated. Downloading the whole product each time there is a update available is not an option. Also, some computers may only have a subset of avaliable programs installed)
First of all is there a already a good way of doing this? If there is something similar to ClickOnce that would also be able to update databases already out there I'd much rather use that.
If not, what are the best practices when it comes to updating? All and any material will be greatly appreciated.
I will need some updates to be installed on the server ASAP after the updates have been submitted, without any user input. That includes a windows service (that is running at all times) and any database changes. After these changes have been made, I will have to prevent any software that is not up to date from either accessing the parts that have been changed, or from running at all.
Any advice will be greatly appreciated - If I do have to write a system like that, I'd like to do it right.
Best practice would be to package the app up in an MSI and use Group Policy to push the updates out to each client.
If that's not possible then you need some way of informing the client app that it is out-of-date (simple check against a server holding the current version number would probably suffice) and refuse to work until an update patch is downloaded and installed - you could even launch this process from inside the app itself.
This answer may help you, I haven't personally used Wix but this seems to be along the lines of what you're looking for. Make sure to check out Lesson 4 in the linked tutorial, as this provides the details you would require.
I'm not sure where you would find best practices when it comes to updating, but in my personal opinion you shouldn't ever force a user to update unless it breaks the underlying application (like yours does). I would be very interested to hear if someone has a link to a list of best practices on this topic.
Edit
I was interested in possible best practices for updating so I started another question thread here. The general consensus in the answers is "Ask the user/client", but there may be some other details in the answers which may help you, I'm afraid I can't find any actual hard rules on the subject anywhere (which I was expecting).